-1

`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

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

4

2 回答 2

7

你得到的消息:

[Parsed_subtitles_0 @ 00000000027b9960] Neither PlayResX nor PlayResY defined. Assuming 384x288

表示您的 ssa 或 srt 文件未指定 PlayResX 和 Y 值。因此 VFilter 假定显示分辨率为 384x288,这就是为什么您的字幕在 1280x576 视频上看起来如此之小的原因。

您的问题的解决方法是:

  1. 将 SRT 转换为 SSA/ASS

    ffmpeg -i file.srt file.ass
    
  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
    ....
    
  3. 最后,使用 ass 文件再次启动您的命令。

于 2013-07-20T17:12:47.220 回答
0

使用 FFmpeg 刻录字幕很棘手,因为画布大小带有基于图片的字幕以及带有文本文件(srt 或 ssa)的字符集编码。

我想我设法在 DVDx 4.1 免费编码器版本(Beta 1.0)中处理了几乎所有情况: http ://www.labdv.com/dvdx/4.1/docs/burn-subtitles-in-video.php

于 2014-01-16T11:00:31.673 回答