Batch file 如何使用连续搜索进行编码(ffmpeg x264)

Batch file 如何使用连续搜索进行编码(ffmpeg x264),batch-file,ffmpeg,video-encoding,x264,Batch File,Ffmpeg,Video Encoding,X264,我有一个批处理文件,将视频文件从“源”文件夹编码到“目标”文件夹 批处理文件内容为: 对于%%a in(“Source**”)do@echo DirectShowSource(%%a”)>>“batchScript.avs”和(&@echo MSharpen(10120)>>“batchScript.avs”和&ffmpeg-i“batchScript.avs”-n-c:v libx264-crf 24-c:a libmp3lame-b:a 192k“Target\%%~na.mp4”和&del

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

批处理文件内容为:

对于%%a in(“Source**”)do@echo DirectShowSource(%%a”)>>“batchScript.avs”和(&@echo MSharpen(10120)>>“batchScript.avs”和&ffmpeg-i“batchScript.avs”-n-c:v libx264-crf 24-c:a libmp3lame-b:a 192k“Target\%%~na.mp4”和&del“batchScript.avs”暂停

我不知道为什么,但当我在media player classic中播放编码文件时,我只能跳到时间上的离散跳,而不能跳到我单击的确切时间

怎样才能避免这种情况发生


谢谢大家

Media Player Classic在
View>Options>Tweaks
中有一个名为Fast Seek的选项,默认情况下该选项处于启用状态。为了快速起见,此选项使MPC仅搜索关键帧

关键帧(或I帧)不需要其他视频帧来解码,但它们是最不可压缩的(也就是说,文件大小/流比特率会随着关键帧的增多而增大)

libx264
的默认关键帧间隔为250(帧),最小关键帧间隔为25。例如,以每秒25帧的速度,这意味着每250/25=10秒或更短的时间就有一个关键帧

当然,如果在MPC中启用快速搜索,这将使搜索变得困难

要缩短关键帧间隔,可以使用
-g[size]
或使用x264选项
keyint=[size]
指定GOP大小


例如:对于25 fps和75大小的GOP,最长每3秒有一个关键帧。

我看到这个问题被否决了-我很高兴听到为什么。这个问答只针对编程问题,其他问题则与主题无关。这就解释了为什么会投反对票。至于您的问题,您能否检查是否启用了快速搜索?如果有这样一个选项处于活动状态,它将只搜索关键帧。在这里看到更多嗨。我不认为我的问题离题了,因为解决方案涉及批处理文件中的一个可编程参数。至于你的建议-我在media player classic中加载的所有文件都完美地搜索任何关键帧,只有编码文件(每个批处理文件)表现出这种奇怪的行为。无论如何,谢谢你的回答。祝你今天愉快:)我没有投你反对票,我只是想帮你:)。由于libx264的默认关键帧间隔值为250,而其他文件可能使用较小的值,因此无论如何都需要检查快速搜索。如果需要,您可以使用
-g[size]
或x264选项
keyint
@aergistal设置特定的关键帧间隔:谢谢!我使用MediaInfo进行了检查,似乎所有编码文件的值都是keyint=250/keyint_min=25。取消选中MPC中的快速搜索选项可以解决此问题。由于我正在以每秒不同的帧数对整个文件夹的视频进行批量编码(使用不同的相机拍摄),我不想篡改-g或-keyint中的fps设置。我想我会保持原样,取消选中MPC中的快速搜索(VLC对我的文件没有问题)。如果你输入一个简洁的答案来解释keyint值之间的差异,我将非常乐意选择你的答案!