镶嵌字幕(Ubuntu下视频字幕嵌入教程)前言 大部分没有接触过linux的用户或者linux的初学都会觉得linux下大部分软件都很难用(专指GUI,CLI除外)相对于各种软件多如羽毛的windows平台可谓匮乏之际。可是当你有一定了解之后,你就会发现linux的好用的软件也很多。下面本文就带你看看在ubuntu下怎么一步一步制作视频字幕并将字幕嵌入到视频中的。 事实上在Ubuntu下要将字幕嵌入到视频可谓相当的简单。你只需要安装两个人软件Aegisub和ffmpeg即可。Aegisub Aegisub是一个免费、开源、跨平台的字幕编辑软件。它被广泛应用于字幕组,是用来制作翻译非官方非商业性质的字幕作品,提供给不同领域的爱好者。 Aegisub被设计用来制作字幕时间轴和排版,以及制作卡拉OK效果。Aegisub的标准格式是AdvancedSubStationAlpha(即ASS字幕)格式,此种格式可以记录字幕位置信息和样式信息。另外Aegisub还支持其他的常见字幕格式,例如SubRip、SRT等。它可以凭视频和音频两种方式来打轴。可以用多种音视频解码方式来解码,例如使用FFmpeg和Avisynth。Aegisub拥有一个强大的名为自动化的脚本运行环境,可透过Lua、MoonScript编程语言来扩充功能。 详细信息可以参考: https:github。comAegisubAegisubffmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。 FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、MacOSX等。这个项目最早由FabriceBellard发起,2004年至2015年间由MichaelNiedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的FF代表FastForward。FFmpeg编码库可以使用GPU加速。 FFmpeg可谓大名鼎鼎,相信互联网起步的那个年代,用过暴风影音或者stormplayer的用户对此一定不陌生,他们的解码器都是FFmpeg。直到现在,好多视频播放器的解码器还都是ffmpeg。 更多信息可以参考: https:www。ffmpeg。orgabout。html步骤 安装软件 首先你得切换apt源到一个稳定源比如说阿里源,比如说清华源,关于怎么切换稳定源这里就不赘述了,自己搜索下一大堆。 其次考虑到包依赖问题,可以使用aptitue代替apt来安装。aptitude是DebianGNULinux系统中,非常神奇的的软件包管理器,基于APT机制,整合了dselect和aptget的所有功能,并提供更多特性,特别是在依赖关系处理上。 与aptget一样,是Debian及其衍生系统中功能极其强大的包管理工具。与aptget不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。 打开终端运行sudoaptupdateyamp;amp;sudoaptinstallaptitudeysudoaptitudeupdateyamp;amp;sudoaptitudeinstallffmpegaegisuby 至此软件安装阶段完成了。 注意:如果Aegisub想要带上汉化就还得安装aegisubl10n包。sudoaptitudeinstallaegisubl10ny 安装完后打开Aegisub,选择Viewgt;Language,从弹出列表中选择中文。重启就可以切换成功了。 制作字幕 打开Aegisub开始制作字幕。 选择Video或者Audio,OpenVideo或者OpenAudioFile选择你要制作的视频或者音频 下面字幕列表部分选择Insertafter依次插入字幕。在视频预览区点击播放,然后等你要制作的字幕的那句话说完点击停止。 这时候视频预览区下方会出现时间区间,startend这样的格式。 切换到右边音轨下方的字幕编辑区,将对应的时间区间填入,然后再进行字幕编辑。 确认无误点commit,也可以事先选择autocommit。 重复上面的步骤指导把整个视频或者音频的制作完成。 最后点save保存为。ass文件即可。 到此字幕文件已经制作完成。详细操作可以参考下图: 嵌入字幕文件 嵌入字幕文则要用到ffmpeg,相对来说简单,只要一条命令即可ffmpegiYOURVIDEOPATHvfassASSFILENAMEc:acopyOUTPUTVIDEOPATH 为了方便操作我们自己写一个shell脚本一劳永逸vimembedsubtitles。sh 内容如下!binbashsourcevideopathSOURCEFILE1assfilepathSUBTITLESFILE2ouputpathOUTPUTPATH3echoffmpegbegintoembedingsubtitles:SUBTITLESFILEintovideoSOURCEFILEechoThetargetfileis:OUTPUTPATHffmpegiSOURCEFILEvfassSUBTITLESFILEc:acopyOUTPUTPATHechoffmpegembedsubtitlesfinished,pleasechecktheoutputfile:OUTPUTPATH 然后给脚本加上可执行权限并添加alais到。bashrc或者。zshrc根据你当前用的shell来chmodxembedsubtitles。shaliasembedsubtitlesbashHOME。embedsubtitles。sh 测试运行下: 假定我的原视频是source。mp4,字幕文件是s。ass,输出是output。mp4embedsubtitlessource。mp4s。assoutput。mp4彩蛋 相信聪明的你已经注意到了,由于Aegisub和ffmpeg都是跨平台的,所以这一套操作流程在Windows也同样是可用的。只不过安装和执行ffmpeg略微有点差异。