我正尝试通过两次通过将场景从软字幕MKV文件转换为硬字幕WEBM文件。视频编码正常,但是在媒体播放器上打开时文件显示的长度错误(这似乎是我从头到尾一直对原始文件进行编码)。
这是我正在使用的命令:
set timestamp=-ss 12:59.069 -to 16:14.277
ffmpeg -y %timestamp% -copyts -i source.mkv -shortest -c:v libvpx-vp9 -pass 1 -b:v 0 -crf 33 -threads 8 -speed 4 -tile-columns 6 -frame-parallel 1 -an -sn -vf scale=-1:720,subtitles=source.mkv -f webm NUL
ffmpeg -y %timestamp% -copyts -i source.mkv -shortest -c:v libvpx-vp9 -pass 2 -b:v 0 -crf 33 -threads 8 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 64k -sn -vf scale=-1:720,subtitles=source.mkv -f webm out.webm
在MPC-BE中打开视频时,视频会定期播放,直到https://i.stack.imgur.com/6bRwc.png所示的点(我要剪切的场景结束)为止,然后它会跳到文件末尾,这种错误的长度使我在尝试使用编码视频时遇到各种问题。
答案 0 :(得分:0)
显然,您的播放器不喜欢非零的开始时间戳(至少在WebMs中如此)。
因此,请在写入之前重置时间戳(我假设您使用的是字幕过滤器对齐方式的副本)。
第二遍,
ffmpeg -y %timestamp% -copyts -i source.mkv -shortest -c:v libvpx-vp9 -pass 2 -b:v 0 -crf 33 -threads 8 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 64k -sn -vf scale=-1:720,subtitles=source.mkv -output_ts_offset -12:59.069 -f webm out.web
其中ts偏移量的值是ss值的负数。