如何使用 avconv 将 srt 字幕刻录到视频中?

neu*_*ont 4 video ffmpeg avconv

系统:Xubuntu 13.04 x64

我在这里的ffmpeg 中找到了此功能的用法

ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我收到一个错误

No such filter: 'subtitles'
Run Code Online (Sandbox Code Playgroud)

在那。如果我替换ffmpegavconv.

所以我尝试在这里下载libav源代码并编译。当我跑步时,我再次感到沮丧

./configure --enable-libass
Run Code Online (Sandbox Code Playgroud)

在源目录中,这次我得到了

Unknown option "--enable-libass"
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是一个非常特殊的东西,avconv根本不支持。和

llo*_*gan 7

为什么subtitles缺少过滤器

Libav 倾向于忽略来自 FFmpeg 的功能,因此avconv它们的假冒“ ffmpeg”(从 14.04 删除)不支持 libass,因此不支持许多其他过滤subtitles中的视频过滤器。


怎么修

您有多种选择可以ffmpeg从 FFmpeg 中获取真实内容:


用法

硬潜艇

这会将字幕“刻录”到视频中,但当然需要重新编码视频:

ffmpeg -i video.mkv -vf subtitles=subtitle.srt -codec:a copy output.mkv
Run Code Online (Sandbox Code Playgroud)

软字幕

由混入文件的字幕流组成。任何值得使用的播放器都允许您打开和关闭字幕,并从可能存在的其他字幕流中进行选择。不需要任何重新编码。

ffmpeg -i video.mkv -i subtitle.srt -codec copy -map 0 output.mkv
Run Code Online (Sandbox Code Playgroud)


Cor*_*ius 5

ffmpeg与 不完全相同avconv。见大约与燃烧的字幕avconv

还有另一种选择,更简单且带有 GUI:Avidemux。安装它:

sudo apt-get install avidemux
Run Code Online (Sandbox Code Playgroud)

打开一个视频文件,然后转到Video,选择一个视频编码器(除了Copy),Filters然后Subtitles。选择Subtitler过滤器:

在此处输入图片说明