Ffmpeg没有正确地在mkv上刻录srt字幕

-1 ffmpeg subtitle

`ffmpeg版本:git-fc6de70(2013-07-18),支持libass和fontconfig.命令行:ffmpeg.exe -i test.mkv -vf subtitles = test.srt out.mkv我得到了这个错误:

Metadata:
    encoder         : Lavf55.12.102
    Stream #0:0(eng): Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 1280x5
76 [SAR 1:1 DAR 20:9], q=-1--1, 1k tbn, 23.98 tbc (default)
    Stream #0:1: Audio: vorbis (libvorbis) (oV[0][0] / 0x566F), 48000 Hz, stereo
, fltp (default)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> libvorbis)
Press [q] to stop, [?] for help
[Parsed_subtitles_0 @ 00000000027b9960] Neither PlayResX nor PlayResY defined. A
ssuming 384x288
Run Code Online (Sandbox Code Playgroud)

http://tinypic.com/r/2ag52so/5

ale*_*son 7

你收到的消息:

[Parsed_subtitles_0 @ 00000000027b9960] Neither PlayResX nor PlayResY defined. Assuming 384x288
Run Code Online (Sandbox Code Playgroud)

表示您的ssa或srt文件未指定PlayResX和Y值.所以VFilter假设显示分辨率为384x288,这就是为什么你的字幕在1280x576视频上显得那么小.

您的问题的解决方法是:

  1. 将SRT转换为SSA/ASS

    ffmpeg -i file.srt file.ass
    
    Run Code Online (Sandbox Code Playgroud)
  2. 编辑您的SSA/ASS文件以设置正确的值.对于SSA,此处描述了格式,并且可以轻松设置PlayRes X和Y.

    [Script Info]
    ; This is a Sub Station Alpha v4 script.
    ....
    ScriptType: v4.00
    Collisions: Normal
    PlayResX: 1280
    PlayResY: 576
    PlayDepth: 0
    ....
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后,使用ass文件再次启动命令.