batch-file - 如何使用连续搜索编码(ffmpeg x264)

标签 batch-file ffmpeg video-encoding x264

我有一个批处理文件,它将视频文件从“源”文件夹编码到“目标”文件夹。

批处理文件内容为:

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/

相关文章:

java - 从 Windows 批处理文件中自行删除 jar

video - ffmpeg/视频处理 : make video repeat itself without duplicating content?

ffmpeg - 一个关于ffmpeg输入文件列表的问题

java - 将视频分割为字节

windows - Bat 文件位于所有窗口顶部

batch-file - 批处理文件中的 Runas 密码

postgresql - 配置数据库后,从 zip 文件安装 Postgres 命令行无法正确启动 Windows 服务

ffmpeg - 使用多个图像创建动态视频

video - 如何在ffmpeg中禁用字幕解码

android - 将一系列图像编码为视频