利用ffmpeg将mkv转换为mp4并嵌入字幕

493 阅读1分钟

利用ffmpeg将mkv转换为mp4并嵌入字幕

本文记录了如何使用ffmpeg命令将mkv文件转换为mp4文件并嵌入字幕。

比如这个mkv文件,

img01.png

有简体中文SC和繁体中文TC两个字幕。

那么通过如下命令,即可将它转换为嵌入了字幕(hardsubs)的mp4文件。

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4

其中参数-vf用于指定filtergraphsubtitles应该就是一个filter,=input.mkv表示使用input.mkv中的默认字幕(参考:ffmpeg.org/ffmpeg-filt…

// man ffmpeg
...
-vf filtergraph (output)
		Create the filtergraph specified by filtergraph and use it to filter the stream.

		This is an alias for "-filter:v", see the -filter option.

另外,可以通过ffmpeg -i input.mkv -f null -,查看input.mkv的信息。

Input #0, matroska,webm, from 'input.mkv':
  Metadata:
    encoder         : libebml v1.3.10 + libmatroska v1.5.2
    ...
  Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv), 1440x1080, SAR 1:1 DAR 4:3, 23.98 fps, 23.98 tbr, 1k tbn (default)
    ...
  Stream #0:1(jpn): Audio: aac (LC), 48000 Hz, 5.1, fltp
    ...
  Stream #0:2(jpn): Audio: aac (LC), 48000 Hz, stereo, fltp
    ...
  Stream #0:3: Subtitle: ass (default)
    Metadata:
      title           : SC
      ...
  Stream #0:4: Subtitle: ass
    Metadata:
      title           : TC
      ...
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native))
  Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))

参考