我已经在窗口中为ffmpeg设置了环境变量,想用ffmpeg:将srt文件嵌入到我的mp4文件中
ffmpeg -i f:sampledance.mp4 -vf subtitles='f:sampledance.srt' f:sampleout.mp4
它遇到了一个奇怪的错误:
Press [q] to stop, [?] for help
[subtitles @ 0000000002c2fd00] Unable to parse option value "sampledance.srt" as
image size
Last message repeated 1 times
[subtitles @ 0000000002c2fd00] Error setting option original_size to value sampl
edance.srt.
[Parsed_subtitles_0 @ 00000000005410c0] Error applying options to the filter.
[AVFilterGraph @ 0000000002940440] Error initializing filter 'subtitles' with ar
gs 'f:sampledance.srt'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
我将文件dance.mp4
和dance.srt
复制到f:ffmpegbin
中,然后执行以下操作:
cd d f:ffmpegbin
ffmpeg -i dance.mp4 -vf subtitles=dance.srt out.mp4
它工作正常,如何使ffmpeg正确解析选项值f:sampledance.srt
,使命令在我的窗口中正常执行?
ffmpeg -i f:sampledance.mp4 -vf subtitles='f:sampledance.srt' f:sampleout.mp4
@kesh,这样写是没有用的:
ffmpeg -i f:sampledance.mp4 -vf "subtitles='f:sampledance.srt'" f:sampleout.mp4
FFmpeg过滤图的解析规则与其他参数的解析规则不同。
由于'esampledance.srt'
是一个过滤图参数的值,我们必须在每个特殊字符之前添加一个转义字符:
ffmpeg -i e:sampledance.mp4 -vf subtitles='e:\sample\dance.srt' e:sampleout.mp4
关于过滤图转义的注释(以及其他地方(中描述了该主题。