2013-04-06 560 views
5

根据ffmpeg手册,设置-g用于定义“I”帧之间的间距,并将-bf设置为使用“B”帧。前者我得到了,但后者没有。使用ffmpeg设置视频中的B帧

目标:我正在尝试制作一个带有GOP 3,12(M = 3,N = 12)的视频。这意味着:2个“B”帧分隔每个“P”帧,而“I”帧具有12帧距离。或者简单地说: “IBBPBBPBBPBBI”

我认为我只拿到了N = 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,但我写的所有命令。我使用的视频是“高速公路”,从cif页面视频:http://www2.tkn.tu-berlin.de/research/evalvid/cif.html

我不知道为什么结果跟踪使用“H”而不是“I”。

我试图把-bf 2在ffmpeg的命令,但没有工作(我想是因为我看到了结果没有 “B” 标志)

列表项

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 [全局选项] [输入选项] -i输入[输出选项]输出' – LordNeckbeard 2013-04-06 21:02:51

回答

2

解决:

像LordNeckbeard说,选择placem在ffmpeg中是重要的。

基本顺序是: 的ffmpeg [全局选项] [输入选项] -i输入[输出选项]输出 - 昨天

我变更为下述命令(把-g 30 -bf 2)和它的工作原理:

的ffmpeg -s -r到岸价30 -i video.yuv -vcodec MPEG4 -g 30 -bf 2 video.m4v

注:即使在第一时间改变后没有工作。 该程序要求我覆盖文件,我说是的。 但显然......没有删除,此刻我删除了所有文件,并再次(从零)它的工作。

现在的结果是:

[罗伯特@ 10-2Fontes] $头-n 40跟踪

1小时12038 9 0。034

2个P 13204 10 0132

3乙5367 4 0132

4 B 5553 4 0132

5 P 12157 9 0232

6乙5069 4 0232

7乙5613 4 0232

8个P 12 739 9 0334

9乙5935 5 0334

10乙3921 3 0334

11个P 4474 4 0429

12乙1247 1 0429

13乙784 1 0429

14 P 1448 1 0528

15乙350 1 0528

16乙397 1 0528

部17p 1023 1 0627

18乙299 1 0633

19乙265 1 0634

20页829 1 0727

21乙209 1 0733

22乙340 1 0733

23 P 867 1 0826

24 B 343 1 0833

25乙378 1 0833

普865 1 0925

27乙282 1 0925

28乙461 1 0925

29 H 5083 4 1034

30个B 818 1 1034

31乙838 1 1034

32 p 1171 1 1122

33乙443 1 1133

34乙409 1 1133

35便士1078 1 1221

36乙269 1 1。233

37乙327 1 1.233

38 P 795 1 1.321

39乙298 1 1.333

40 B 304 1 1.334

41 P 854 1 1.419

42 B 477 1 1.419

43 B 412 1 1.419

5,44个P 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 B 454 1 1.617

50 P 1118 1 1.717

51乙286 1 1.717

52乙275 1 1.717

部53p 1044 1 1.815

54乙362 1 1.815

55乙273 1 1.815

专题复习973 1 1.914

57 B 302 1 1.914

58乙324个1 1.915

59ħ4525 4 2.033

+0

什么是正确的值-bf,如果我不想使用-g参数?! – 2015-08-19 05:54:15