我有一个批处理文件,它将视频文件从“源”文件夹编码到“目标”文件夹。
批处理文件内容为:
for %%a in ("Source*.*") do @echo DirectShowSource("%%a") >> "batchScript.avs" && @echo MSharpen(10,120) >> "batchScript.avs" && ffmpeg -i "batchScript.avs" -n -c:v libx264 -crf 24 -c:a libmp3lame -b:a 192k "Target\%%~na.mp4" && del "batchScript.avs" pause
我不知道为什么,但是当我在 media player classic 中播放编码文件时,我只能跳到离散的时间跳跃,而不是我点击的确切时间。
有什么办法可以避免这种情况发生?
谢谢大家!
最佳答案
Media Player Classic 有一个名为 的选项。快速搜索 在 View > Options > Tweaks
默认情况下启用。为了快速起见,此选项使 MPC 仅搜索关键帧。
关键帧(或 I 帧)不需要其他视频帧即可进行解码,但它们的可压缩性最低(也就是文件大小/流比特率会因大量关键帧而变大)。libx264
的默认关键帧间隔为 250(帧),最小关键帧间隔为 25。例如,每秒 25 帧,这意味着每 250/25 = 10 秒或更短的关键帧。
当然,如果在 MPC 中启用了快速搜索,这将使搜索变得困难。
要减少关键帧间隔,您可以使用 -g [size]
指定 GOP 大小。或使用 x264 选项 keyint=[size]
.
例如:对于 25 fps 和 GOP 大小 75,每个最大值都有一个关键帧。 3 秒。
关于batch-file - 如何使用连续搜索编码(ffmpeg x264),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29580912/