为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用FFmpeg连接两个MP4文件?

如何使用FFmpeg连接两个MP4文件?

SMILET 2019-06-25 16:06:55
如何使用FFmpeg连接两个MP4文件?我正在尝试使用ffmpeg连接两个MP4文件。我需要这是一个自动的过程,因此我选择ffmpeg。我正在将这两个文件转换为.ts文件,然后将它们连接起来,然后尝试对连接的.ts文件进行编码。该文件是H 264和AAC编码,我希望保持相同的质量或尽可能接近原件。ffmpeg -i part1.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part1.ts ffmpeg -i part2.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part2.ts cat part1.ts part2.ts > parts.ts ffmpeg -y -i parts.ts -acodec copy -ar 44100 -ab 96k -coder ac -vbsf h264_mp4toannexb parts.mp4不幸的是,在编码过程中,我从ffmpeg获得了以下错误消息:[h264 @ 0x1012600]sps_id out of range [h264 @ 0x1012600]non-existing SPS 0 referenced in buffering period [h264 @ 0x1012600]sps_id out of range [h264 @ 0x1012600]non-existing SPS 0 referenced in buffering period [NULL @ 0x101d600]error, non monotone timestamps 13779431 >= 13779431kbits/s     av_interleaved_write_frame(): Error while opening file这种情况在编码过程中发生了一半,这使我认为不能将两个.ts文件连接在一起并让它工作。
查看完整描述

3 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

这里有一种快速(花费不到1分钟)和无损的方法来实现这一点,而不需要中间文件:

ls Movie_Part_1.mp4 Movie_Part_2.mp4 | perl -ne 'print "file $_"' | ffmpeg -f concat -i - -c copy Movie_Joined.mp4

“ls”包含加入“perl”的文件,“perl”在运行时将连接文件创建到管道中,“-i-”部分告诉ffmpeg从管道读取。

(注意-我的文件中没有空格或奇怪的东西-如果你想用“硬”文件来执行这个想法的话,你需要适当的shell转义)。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 1442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信