过滤需要重新编码

过滤需要重新编码

我一开始的视频开头和结尾都有不想要的内容,而且音轨太安静。最后我得到的是经过修剪和音频增强的视频,但视频尺寸小了很多。我希望得到关于如何改进此过程的建议。

第一个命令:

ffmpeg -ss 00:00:07.0 -i input.mp4 -c copy -t 02:00:00.0 -filter:a "volume=5dB" output.mp4

这产生了一个错误:

Filtering and streamcopy cannot be used together.

我重新运行了该命令,-filter:a "volume=5db"结果成功了:output.mp4 在所需的点开始和结束,并且具有相同的视频比特率(但由于某种原因,其音频比特率增加了 10 kb/s)。我将 output.mp4 重命名为 input.mp4 并运行以下命令:

ffmpeg -i input.mp4 -filter:a "volume=5dB" output.mp4

这样就生成了一个新的 output.mp4,声音稍微大一些,但现在视频比特率从 5,000 kb/s 降至 999 kb/s,音频比特率从 161 kb/s 降至 129 kb/s。然而,在我看来,视频和音频质量似乎没有变化。

我的问题:是否有一个命令可以同时修剪视频长度并提高音频音量,而不会降低质量?

理想情况下,推荐的命令可以解决我所采用的方法中的几个问题:

  • 大概我不希望看到视频比特率如此急剧下降,除非 FFmpeg 检测到它可以在不损失明显质量的情况下大幅降低视频比特率。以 5,000 kb/s 的速度录制原始视频只是猜测;也许有点过头了。
  • 据推测音频比特率应该保持恒定;我不明白为什么会出现波动。
  • 我猜测 5db 可能是正确的音频增强,但我更喜欢不需要猜测的选项或方法。

答案1

过滤需要重新编码

因此你不能流复制-c copy)并过滤相同的流。但是,您可以流复制其他未过滤的流,例如您案例中的视频(-c:v copy)。


无法保证准确的切割/修剪......

...在典型的 MP4 视频文件上使用流复制时。使用流复制时,它只能在关键帧上剪切。如果修剪/剪切足够接近或可以接受,那么您可以忽略这一点。

如果它不够准确,那么您将不得不通过省略来重新编码,-c copy这将花费更长的时间。


缩短视频长度并增强音频而不损失质量。可以吗?

是的。如果您使用无损格式,但我怀疑这不是您想要的。无损通常很大,并且可能与您的目标播放器/设备不兼容。

是的,如果你使用播放器来做这件事:ffplay -ss 7 -t 02:00:00 -af "volume=5dB" input.mp4

,如果您需要有损格式(如 AAC 音频),因为发电损失


总结

使用:

ffmpeg -ss 00:00:07.0 -i input.mp4 -c:v copy -t 02:00:00.0 -filter:a "volume=5dB" output.mp4

如果切割不够准确,请使用:

ffmpeg -ss 00:00:07.0 -i input.mp4 -t 02:00:00.0 -filter:a "volume=5dB" output.mp4

相关内容