13 video
如何将字幕合并到电影中以在我的 android 电视上播放?
我搜索了很长时间,但几乎程序不再在 ubuntu 上工作,或者我找不到存储库。 这是一些答案,但我认为16.04不再支持它
Pet*_*des 26
如果您的电视可以播放有字幕的电影多工到同一个文件中的视频,也有很多优势,加上字幕的字幕轨道,而不是它们燃烧成视频。
mkvmerge -o movie_with_subs.mkv movie.mp4 subs.srt
Run Code Online (Sandbox Code Playgroud)
这将包括来自 mp4(视频、音频、章节)的所有曲目,以及来自 srt 的字幕作为文本字幕轨道。所需的时间与复制文件一样长,因为它不必对视频进行解码/重新编码。
Ubuntu 将 mkvmerge 打包在mkvtoolnix
. 有一个mkvtoolnix-gui
带有 gui 前端的包。它有很多选项可以让您控制字幕偏移等内容。
这样做的主要优点是您可以避免使用另一个生成丢失的解码/编码周期来降低质量。转码时无法避免质量下降,甚至要接近编码良好的源的每个文件大小的质量都需要大量 CPU 时间。(例如 x264 with -preset slower
,或者如果您的播放器支持它,x265 如果您愿意花费大量 CPU 时间来制作仍然看起来不错的较小文件)。如果您不关心文件大小,因为您只是将其流式传输到电视上,那么使用 x264 转码-preset veryfast -crf15
可以快速运行并且损失最小的质量。
混合低音炮的另一个优点是您可以打开/关闭低音炮,或者让您的播放器在屏幕上的不同位置显示它们。
如果您想记住电影中的台词,也可以稍后提取它们并进行搜索。
您甚至可以提取它们,修复拼写错误,然后将它们混入。
Moh*_*ama 18
我在 ubuntu 16.04 很棒的应用程序上使用Hand Brake,并且使用起来非常简单。 https://launchpad.net/~stebbins/+archive/ubuntu/handbrake-releases
安装:
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake
Run Code Online (Sandbox Code Playgroud)
它是如何工作的:
我认为MKVToolNix是最简单易用的免费工具,可用于将视频文件与字幕文件合并。只需通过例如运行终端/外壳命令来安装它,例如:
sudo apt-get install mkvtoolnix mkvtoolnix-gui -y
Run Code Online (Sandbox Code Playgroud)
...然后运行它,右键单击源文件区域以添加您的视频文件和字幕文件(步骤1,在下图中),指定目标 MKV 视频文件的位置(步骤2)和然后单击开始多路复用(第3步)。完毕。
MKVToolNix 将字幕轨道/流与视频轨道/流一起复用/复用。这意味着输出的 MKV 文件(例如/tmp/output.mkv
)将是一个视频文件,其中包含嵌入的字幕,您将能够在播放此类 MKV 视频时打开和关闭字幕。
PS:如果您的 Android TV 无法播放 MKV 视频文件,请使用MX Player、Kodi Player或VLC Media Player添加 MKV 播放支持。
在这种情况下,一种费力但有益的方法包括(1)将您的字幕文件转换为SSA格式,(2)编辑 SSA 的样式行,然后(3)使用avconv
/ffmpeg
将此类风格化的字幕合并/硬编码到视频中轨道/流(然后字幕的字符将被转换为象形图或图形符号,即像素不仅“覆盖”视频的图片/帧,而且替换一些这样的像素)。
这是如何做到的:
sudo apt-get install gnome-subtitles -y
)将您的字幕文件(例如input.srt
)转换为 SSA 格式(例如input.ssa
),然后将 SSA 文件保存在/tmp
(因此您将拥有/tmp/input.ssa
)。sudo apt-get install gedit -y
)打开你的 SSA 文件,然后用这个替换整 Style
行:Style: Default,Arial,16,&H00FFFF,&H00FFFF,&H00FFFF,&H77000000,2,0,3,2,1,2,10,10,10,0,0
替换该Style
行后,保存 SSA 文件,然后关闭文本编辑器。上面的配置行将全局预设字幕为 16pt 黄色 Arial 字体,并在字幕后面添加半透明黑色背景(以便于阅读)。
avconv
:3.1. 通过运行此 shell 命令安装avconv
和ffmpeg
包:
sudo apt-get install ffmpeg libav-tools -y
Run Code Online (Sandbox Code Playgroud)
编辑:avconv
被弃用在Ubuntu 18.04及更高版本。因此,如果您使用的是 Ubuntu 18.04 或任何更高版本,只需安装ffmpeg
:
sudo apt install ffmpeg -y
Run Code Online (Sandbox Code Playgroud)
...或者:
sudo snap install ffmpeg
Run Code Online (Sandbox Code Playgroud)
3.2. 将您的视频文件(例如input.avi
)移动到/tmp
文件夹中,以便最终拥有例如/tmp/input.avi
和/tmp/input.ssa
3.3. 运行 shell 命令cd /tmp
以使 Linux shell 访问该/tmp
目录
3.4. 通过运行以下 shell 命令,将 SSA 字幕硬编码到视频文件中:
avconv -i input.avi -map 0:0 -map 0:1 -c:v libx264 -aspect 16:9 -q:v 1 -b:v 512k -strict -2 -c:a aac -ac 2 -filter:v subtitles=input.ssa output.mp4
Run Code Online (Sandbox Code Playgroud)
编辑:如果您使用的是 Ubuntu 18.04 或更高版本,则上述命令必须ffmpeg
以avconv
.
上面的命令使用libx264
视频编解码器创建H.264
视频文件(.mp4
只是容器的文件扩展名)。但是,如果您更喜欢创建MPEG-4
视频文件,请改用mpeg4
视频编解码器:
avconv -i input.avi -map 0:0 -map 0:1 -c:v mpeg4 -aspect 16:9 -q:v 1 -b:v 512k -strict -2 -c:a aac -ac 2 -filter:v subtitles=input.ssa output.mp4
Run Code Online (Sandbox Code Playgroud)
编辑:如果您使用的是 Ubuntu 18.04 或更高版本,则上述命令必须ffmpeg
以avconv
.
上面命令的输出将是/tmp/output.mp4
,您会注意到这样的 MP4(即 x264 或 MPEG-4)视频文件将具有硬编码的位图字幕。
如果您希望尝试提高合并/输出视频的质量(即使以获取更大的文件大小为代价),请将512k
参数替换为更大的参数(例如1024k
)。但是,如果您决定获得较小的文件大小(即使以降低合并/输出视频的质量为代价),请将512k
参数替换为较小的参数(例如256k
)。如果原始(输入)视频文件的纵横比为4:2并且您想保留它,请更改-aspect 16:9
为-aspect 4:2
. 如果您不知道此类视频文件的纵横比,请使用媒体播放器打开它,然后查看。例如,如果您使用 VLC 打开它,然后在播放时按Ctrl+ i,然后选择Codec
选项卡,您将在名为 的字段中看到此类纵横比Decoded format
。
归档时间: |
|
查看次数: |
37525 次 |
最近记录: |