关闭

ffmpeg 视频合并后后面一段解码不出来的问题分析

349人阅读 评论(0) 收藏 举报
分类:

2个3gp视频,都是x264编码,但是参数有些不同,使用

ffmpeg -y -f concat -i flvmergelist.txt -c copy out.flv 合并后出现只能播放前面一段,后一个文件不能解码的问题.

经过分析,发现是因为2个视频的编码参数不同,如下:

x264 - core 130 r2274bm c832fe9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html 

- options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=2 lookahead_threads=2 sliced_threads=1 slices=2 
nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 

weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00



x264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html 
- options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 
nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 

weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00


主要差别是一个使用了bfrmes,而另外一个则没有.使用下面命令转换后再合并,就解决了这个问题.

ffmpeg -loop 1 -i 1.jpg -bf 0 -pix_fmt yuv420p -vcodec libx264 -y -to 5 1.flv

-bf 0表示不使用b frames

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34593次
    • 积分:651
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:6篇
    • 译文:0篇
    • 评论:0条
    文章分类