ass字幕pos怎么使用(Ubuntu下视频字幕嵌入教程)

快鱼网 24 0

前言

大部分没有接触过linux的用户或者linux的初学都会觉得linux下大部分软件都很难用(专指GUI,CLI除外)相对于各种软件多如羽毛的windows平台可谓匮乏之际。可是当你有一定了解之后,你就会发现linux的好用的软件也很多。下面本文就带你看看在ubuntu下怎么一步一步制作视频字幕并将字幕嵌入到视频中的。

事实上在Ubuntu下要将字幕嵌入到视频可谓相当的简单。你只需要安装两个人软件Aegisub和ffmpeg即可。

Aegisub

Aegisub是一个免费、开源、跨平台的字幕编辑软件。它被广泛应用于字幕组,是用来制作翻译非官方非商业性质的字幕作品,提供给不同领域的爱好者。

Aegisub 被设计用来制作字幕时间轴和排版,以及制作卡拉OK效果。Aegisub 的标准格式是AdvancedSubStation Alpha(即ASS字幕)格式,此种格式可以记录字幕位置信息和样式信息。另外Aegisub还支持其他的常见字幕格式,例如SubRip、SRT等 。它可以凭视频和音频两种方式来打轴。可以用多种音视频解码方式来解码,例如使用FFmpeg和Avisynth。Aegisub拥有一个强大的名为自动化的脚本运行环境,可透过Lua、MoonScript编程语言来扩充功能。

详细信息可以参考:

ffmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。FFmpeg编码库可以使用GPU加速。

FFmpeg可谓大名鼎鼎,相信互联网起步的那个年代,用过暴风影音或者stormplayer的用户对此一定不陌生,他们的解码器都是FFmpeg。直到现在,好多视频播放器的解码器还都是ffmpeg。

更多信息可以参考:

步骤安装软件

首先你得切换apt源到一个稳定源比如说阿里源,比如说清华源,关于怎么切换稳定源这里就不赘述了,自己搜索下一大堆。

其次考虑到包依赖问题,可以使用aptitue代替apt来安装。

aptitude 是 Debian GNU/Linux 系统中, 非常神奇的的软件包管理器,基于APT机制, 整合了 dselect 和 apt-get的所有功能, 并提供更多特性,特别是在依赖关系处理上。

与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。

打开终端运行

sudo apt update -y && sudo apt install aptitude -ysudo aptitude update -y && sudo aptitude install ffmpeg aegisub -y

至此软件安装阶段完成了。

注意:如果Aegisub想要带上汉化就还得安装aegisub-l10n包。

sudo aptitude install aegisub-l10n -y

安装完后打开Aegisub,选择View->Language, 从弹出列表中选择中文。重启就可以切换成功了。

制作字幕

打开Aegisub开始制作字幕。

选择Video或者Audio,Open Video 或者 Open Audio File 选择你要制作的视频或者音频下面字幕列表部分选择Insert after依次插入字幕。在视频预览区点击播放,然后等你要制作的字幕的那句话说完点击停止。这时候视频预览区下方会出现时间区间, start-end这样的格式。切换到右边音轨下方的字幕编辑区,将对应的时间区间填入,然后再进行字幕编辑。确认无误点commit,也可以事先选择auto commit。重复上面的步骤指导把整个视频或者音频的制作完成。最后点save保存为.ass文件即可。

到此字幕文件已经制作完成。详细操作可以参考下图:

嵌入字幕文件

嵌入字幕文则要用到ffmpeg,相对来说简单,只要一条命令即可

ffmpeg -i $YOUR_VIDEO_PATH -vf "ass=$ASS_FILE_NAME" -c:a copy $OUTPUT_VIDEO_PATH

为了方便操作我们自己写一个shell脚本一劳永逸

vim embed-subtitles.sh

内容如下

#!/bin/bash # source video pathSOURCE_FILE=$1 # ass file pathSUBTITLES_FILE=$2# ouput pathOUTPUT_PATH=$3echo "ffmpeg begin to embeding subtitles: $SUBTITLES_FILE into video $SOURCE_FILE"echo "The target file is: $OUTPUT_PATH"ffmpeg -i $SOURCE_FILE -vf "ass=$SUBTITLES_FILE" -c:a copy $OUTPUT_PATHecho "ffmpeg embed subtitles finished, please check the output file: $OUTPUT_PATH"

然后给脚本加上可执行权限并添加alais到.bashrc或者.zshrc根据你当前用的shell来

chmod +x embed-subtitles.shalias embed-subtitles="bash $HOME/.embed-subtitles.sh"

测试运行下:

假定我的原视频是source.mp4, 字幕文件是s.ass, 输出是output.mp4

embed-subtitles source.mp4 s.ass output.mp4彩蛋

相信聪明的你已经注意到了,由于Aegisub和ffmpeg都是跨平台的,所以这一套操作流程在Windows也同样是可用的。只不过安装和执行ffmpeg略微有点差异。

标签: 字幕

抱歉,评论功能暂时关闭!