利用ffmpeg将mkv转换为mp4并嵌入字幕
本文记录了如何使用ffmpeg命令将mkv文件转换为mp4文件并嵌入字幕。
比如这个mkv文件,
有简体中文SC和繁体中文TC两个字幕。
那么通过如下命令,即可将它转换为嵌入了字幕(hardsubs)的mp4文件。
ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4
其中参数-vf用于指定filtergraph,subtitles应该就是一个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))