ffmpeg

2013-04-06 12 views
5

के साथ एक वीडियो में बी फ्रेम सेट करना ffmpeg मैनुअल के अनुसार, -g सेटिंग "I" फ्रेम के बीच की जगह को परिभाषित करना है, और "बी" फ्रेम का उपयोग करने के लिए -bf सेट करना है। मुझे पहले मिला, लेकिन बाद वाला नहीं।ffmpeg

लक्ष्य: मैं (एन = एम = 3, 12) एक GOP 3,12 के साथ एक वीडियो के लिए कोशिश कर रहा हूँ। इसका मतलब है: 2 "बी" फ्रेम प्रत्येक "पी" फ्रेम को अलग करते हैं, और "मैं" फ्रेम के 12 फ्रेम के साथ फ्रेम करता है। या बस: "IBBPBBPBBPBBI"

मुझे लगता है कि मुझे मिल गया है कि केवल एन = 12, नीचे दिए गए आदेशों का उपयोग कर:

  1. ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -y -i video.yuv -vcodec mpeg4 video.m4v
  2. MP4Box -hint -mtu 1460 -fps 30 -add video.m4v video.mp4
  3. ffmpeg -y -i video.mp4 video_ref.yuv
  4. ../cmd/psnr 352 288 420 video.yuv video_ref.yuv > psnr_ref.txt
  5. ../cmd/mp4trace -f -s 192.168.0.2 12346 video.mp4 > trace
  6. head -n 20 trace

परिणाम:

[[email protected]]$ head -n 20 trace 
1 H 12002 9 0.000 
2 P 11479 8 0.034 
3 P 12021 9 0.066 
4 P 11239 8 0.099 
5 P 5407 4 0.134 
6 P 2735 2 0.166 
7 P 1014 1 0.199 
8 P 850 1 0.232 
9 P 619 1 0.265 
10 P 979 1 0.298 
11 P 813 1 0.331 
12 P 806 1 0.364 
13 H 5109 4 0.396 

* नोट, सबसे महत्वपूर्ण ffmpeg में आदेश -g 12 है, लेकिन मैं सभी आदेशों लेखन। मैं जिस वीडियो का उपयोग कर रहा हूं वह सीआईएफ पृष्ठ वीडियो से "राजमार्ग" है: http://www2.tkn.tu-berlin.de/research/evalvid/cif.html

मुझे नहीं पता कि परिणाम ट्रेस "मैं" के बजाय "एच" का उपयोग क्यों कर रहा है।

मैं ffmpeg आदेश में -bf 2 डालने की कोशिश की है, लेकिन काम नहीं किया (मुझे लगता है कि क्योंकि मैं परिणाम में कोई 'बी' संकेत देखा था)

सूची आइटम

ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -bf 2 -y -i video.yuv -vcodec mpeg4 video.m4v 

परिणाम:

[[email protected]]$ head -n 20 trace 
1 H 12002 9 0.001 
2 P 11479 8 0.034 
3 P 12021 9 0.067 
4 P 11239 8 0.100 
5 P 5407 4 0.132 
6 P 2735 2 0.166 
7 P 1014 1 0.199 
8 P 850 1 0.232 
9 P 619 1 0.265 
10 P 979 1 0.298 
11 P 813 1 0.331 
12 P 806 1 0.363 
13 H 5109 4 0.400 
+1

विकल्प नियुक्ति ffmpeg में मायने रखती है। आप इनपुट/डिकोडर में अपने विकल्पों को लागू करने के लिए ffmpeg बता रहे हैं। मूल क्रम है: 'ffmpeg [वैश्विक विकल्प] [इनपुट विकल्प] -आई इनपुट [आउटपुट विकल्प] आउटपुट ' – LordNeckbeard

उत्तर

2

हल:

लॉर्डनेकबीर्ड की तरह, विकल्प स्थान ffmpeg में ent मामलों मायने रखता है।

बेसिक आदेश है: ffmpeg [वैश्विक विकल्प] [इनपुट विकल्प] मैं इनपुट [उत्पादन विकल्प] उत्पादन - कल

मैं नीचे आदेश करने के लिए बदल (जी 30 -bf 2 डाल) और यह काम करता :

ffmpeg सीआईएफ -r -s 30 मैं video.yuv -vcodec mpeg4 जी 30 -bf 2 video.m4v

नोट: भले के बाद पहली बार में बदल काम नहीं किया। कार्यक्रम ने मुझे फाइलों को ओवरराइट करने के लिए कहा और मैंने हां कहा। लेकिन स्पष्ट रूप से sth को हटाया नहीं गया था, इस समय मैंने सभी फाइलों को हटा दिया और फिर से (शून्य से) यह काम किया।

अब परिणाम है:

-n

[रॉबर्ट @ 10-2Fontes] $ सिर 40 ट्रेस

1 एच 12,038 9 0।034

2 पी 13204 10 0,132

3 बी 5367 4 0,132

4 बी 5553 4 0,132

5 पी 12157 9 0,232

6 बी 5069 4 0,232

7 बी 5613 4 0.232

8 पी 12739 9 0.334

9 बी 5935 5 0,334

10 बी 3921 3 0,334

11 पी 4474 4 0,429

12 बी 1247 1 0,429

13 बी 784 1 0,429

14 पी 1448 1 0.528

15 बी 350 1 0.528

16 बी 397 1 0,528

17 पी 1023 1 0,627

18 बी 299 1 0,633

19 बी 265 1 0,634

20 पी 829 1 0,727

21 बी 20 9 1 0.733

22 बी 340 1 0.733

23 पी 867 1 0,826

24 बी 343 1 0,833

25 बी 378 1 0,833

26 पी 865 1 0,925

27 बी 282 1 0,925

28 बी 461 1 0.925

2 9 50 504 1.034

30 बी 818 1 1,034

31 बी 838 1 1,034

32 पी 1171 1 1,122

33 बी 443 1 1,133

34 बी 409 1 1,133

35 पी 1078 1 1.221

36 बी 26 9 1 1।233

37 बी 327 1 1,233

38 पी 795 1 1,321

39 बी 298 1 1,333

40 बी 304 1 1,334

41 पी 854 1 1,419

42 बी 477 1 1.419

43 बी 412 1 1.419

44 पी 869 1 1,519

45 बी 371 1 1,519

46 बी 314 1 1,519

47 पी 983 1 1,617

48 बी 337 1 1,617

49 बी 454 1 1.617

50 पी 1118 1 1.717

51 बी 286 1 1,717

52 बी 275 1 1,717

53 पी 1044 1 1,815

54 बी 362 1 1,815

55 बी 273 1 1,815

56 पी 973 1 1.914

57 बी 302 1 1.914

58 बी 324 1 1,915

59 एच 4525 4 2,033

+0

-bf के लिए सही मान क्या है, अगर मैं -g पैरामीटर का उपयोग नहीं करना चाहता हूं ?! –

 संबंधित मुद्दे