用ffmpeg准确切割.mp4而不会失去音频保真度?

时间:2017-05-22 20:08:12

标签: video ffmpeg

我试图通过ffmpeg找到准确切割.mp4的方法。据我了解,它需要重新编码以解决关键帧问题。我知道使用' -crf 0'可以将视频质量设置为无损,但是有没有办法用音频执行此操作?我拼凑的最好的尝试是:

ffmpeg -ss 0 -i input.mp4 -t 23 -c:v libx264 -c:a aac -b:a 320k -strict experimental -preset ultrafast -crf 0 output.mp4

我对文件大小也不太感兴趣。谢谢你的帮助。

使用ffmpeg 3.2.5更新

这会产生13秒的输出视频:

ffmpeg -ss 00:00:03 -i input.mp4 -t 10 -c:v libx264 -c:a copy -crf 0 -preset ultrafast output.mp4

这会产生10秒的输出(我正在寻找的)但没有重新编码音频:

ffmpeg -ss 00:00:03 -i input.mp4 -t 10 -c:v libx264 -crf 0 -preset ultrafast output.mp4

另一个更新

我不认为这是可能的,因此Brad建议,我将研究使用带有VP9编码和PCM音频的.mkv。

2 个答案:

答案 0 :(得分:0)

  

据我了解,需要对其进行重新编码以解决关键帧问题。

这是正确的,AAC音频也有框架问题。

如果您想要无损音频,则需要使用支持无损音频的编解码器。我推荐FLAC。

我不认为FLAC在MP4容器中工作,所以请改用MKV。

答案 1 :(得分:0)

所有音频帧都是关键帧,因此只要ffmpeg支持输出容器中的音频编解码器,就可以简单地复制音频。

ffmpeg -ss 0 -i input.mp4 -t 23 -c:v libx264 -c:a copy -preset ultrafast -crf 0 output.mp4

如果视频修剪点是关键帧,那么视频也是如此。由于视频流开始(-ss 0)将在关键帧上开始,因此您可以使用

ffmpeg -ss 0 -i input.mp4 -t 23 -c:v copy -c:a copy output.mp4