由于相同的MOOV原子,无法连接视频

时间:2014-04-08 14:54:45

标签: android video ffmpeg

我正在从一个长mp4文件中删除段,然后重新加入它们的一部分。然而,由于FFMPEG显然为修剪后的文件保留了与原始文件相同的MOOV原子,因此它看起来FFMPEG修剪后的视频都是相同的,因为它们都具有相同的MOOV原子,因此在尝试加入时只使用第一个段。视频。有没有解决的办法?不幸的是,由于FFMPEG嵌入在Android应用程序中,我只能使用0.11版本。 编辑:

这是流程的示例:

ffmpeg -i /sdcard/path/movie.mp4  -ss 00:00:06.000, -t  00:00:05.270, -c:a aac -c:v libx264 /sdcard/path/file1.mp4
ffmpeg -i /sdcard/path/movie.mp4  -ss 00:00:12.000, -t  00:00:04.370, -c:a aac -c:v libx264 /sdcard/path/file2.mp4
ffmpeg -i /sdcard/path/movie.mp4  -ss 00:00:23.000, -t  00:00:03.133, -c:a aac -c:v libx264 /sdcard/path/file3.mp4
ffmpeg -i "concat:/sdcard/path/file1.mp4|/sdcard/path/file2.mp4|/sdcard/path/file3.mp4" -c:a aac -c:v libx264 /sdcard/path/output.mp4

我也尝试过使用复制编解码器选项但是没有帮助。

1 个答案:

答案 0 :(得分:1)

你可以试试像:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

我希望这适用于ffmpeg版本0.11。我们需要确保在应用文件剪切之前可以连续。

你也可以检查中间文件* .mp4效果不错吗?您是否可以尝试将视频文件放在与ffmpeg相同的文件夹中我不确定concat协议对/sdcard/path/file1.mp4|/sdcard/path/file2.mp4的反应如何?