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

原创 2015年11月17日 22:24:13

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ffmpeg /x264视频流编解码末尾丢帧问题分析和解决

一:问题 int avcodec_encode_video2 ( AVCodecContext *  avctx, A...

基于FFMPEG 的跨平台视频编解码研究

第33卷 第11期 2011年11月 武 汉 理 工 大 学 学 报 JOURNALOF WUHANUNIVERSITYOFTECHNOLOGY Vol.33 No.11 췍췍췍췍췍췍췍췍췍췍...

视频直播流程以及ffmpeg编解码流程

去年最流行的非视频直播莫属,出现了几百家的直播平台,毕竟自己也是在直播平台做开发的,然后就写一篇关于直播的文章。这里只说流程,具体的实现就不说了,应付面试应该还是可以的。       先上一张简单的流...

嵌入式Linux下基于FFmpeg的视频硬件编解码

嵌入式Linux下基于FFmpeg的视频硬件编解码[图] http://www.c114.net ( 2012/3/1 15:41 ) 摘要: 对FFmpeg多媒体解决方案中的视频...

android studio 2.2 cmake ffmpeg 简单的播放器(这里只有视频解码)

背景 在上一次的初次使用cmake编译jni后,这次cmake文件再次升级。利用网上的代码来编译一个简单的播放器。本文参照 Android+FFmpeg+ANativeWindow视频解码播放 一文...

FFmpeg - 视频解码过程

FFmpeg的文档做得不好,导致学会使用这个库是存在一定难度的。在对文件进行解码时,抄网上流传的例子就可以了。比如,常见的例子是这样的: main(0 { av_register_all(...

通过C++/CLI使用FFMPEG库进行视频解码[初步]

文章转自:http://www.cnblogs.com/slayercat/archive/2012/09/11/CPP-CLI_FFMPEG.html 所有源代码均为共有领域,您可...

FFMPEG 视频解码基础总结

音视频解码流程原理上讲: 我们所看到的有声视频,其实是视频和音频数据同步的结果. 视频的播放过程 封装视频格式(flv,mp4)等,解封装 , 变为 视频压缩的数据(H.264), 再经过解码,变成...

历经万难,终于搞定Android下的使用FFMPEG成功对H.264视频流解码

在经过差不多一个礼拜的时间,终于完成了RTSP+H.264解码,真的是十分的高兴,期间感冒,身体不好,还和XX闹矛盾,因此做出来也有点出乎意料,心情格外的好。终于能毕业了。 因此分享一下我的经验,希...

使用ffmpeg进行音视频编解码时用到的函数介绍

本文对在使用ffmpeg进行音视频编解码时使用到的一些函数做一个简单介绍,我当前使用的ffmpeg版本为:0.8.5,因为本人发现在不同的版本中,有些函数名称会有点小改动,所以在此有必要说明下ffmp...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)