首页 > 其他 > 详细

(原)使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究

时间:2019-09-04 19:11:19      阅读:174      评论:0      收藏:0      [点我收藏+]

使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究

Author:lihaiping1603@aliyun.com

Create:2019-09-04

最近对ffmpeg给视频文件添加字幕效果,进行了一些调试和研究,个人做个笔记,方便以后查找和使用。

将字幕加入到视频文件中,有两种方式:

1)第一种是将字幕以除了音视频之外的字幕流的形式添加到视频文件格式中,然后播放器在播放这个视频文件的时候,就可以显示相应的字幕效果了,该方式对于已经存在的视频文件,可以不用对音视频进行转码,速度和效率较高,但缺陷是对于一些格式不支持一些字幕编码格式,例如mp4不支持ass编码格式字幕流,而mkv支持。所以对于mkv格式的视频文件,我们可以利用如下的命令方式直接添加字幕流:

Ffmpeg -i video.mp4 -i subtitle.ass -c:v copy -c:a copy -c:s ass -y dest.mkv

2) 另外一种方式是将字幕流烧录到视频流中,即当成视频效果的一部分,通过字幕滤镜处理。优点是支持所有的视频文件格式,缺点是需要对原视频中的视频流进行转码处理,耗时耗硬件资源。例如将字幕文件烧录进mp4,可以利用如下的命令方式直接添加字幕:ffmpeg -i video.mp4 -vf ass=subtitle.ass -y dest.mp4

3) 同时这里介绍一下aas格式中的一些不是特别好理解的东西(相关基础资料可以参考:

aas文件格式介绍:

https://blog.csdn.net/winglyx/article/details/6791719;

https://www.douban.com/note/658520175/;

ass特效标签介绍:

https://aegi.vmoe.info/docs/3.2/ASS_Tags/;)

针对字幕显示的位置,如何在ass中指定呢?这里我找到两个相关的字段\an\pos这两个字段:

 技术分享图片

这个是\an的介绍,我们假设我们是在一个虚拟的字幕输入框中输入我们的字幕,那么这个an的方式设置其实就是针对字幕输入框中当我们输入字幕的时候,这些字幕是如何在输入框中从什么位置开始展开的,也即以为字幕输入框的参考点设置,例如当我们设置为an5的时候,那么输入字幕的时候,参考点为输入框的中心,所以字幕增加的时候,就会在输入框向两边拓展展示。下面我们在确定posan的时候,字幕输入不同的字数的时候的截图如下:

 技术分享图片

 技术分享图片

 

 

所以an5,即输入框的参考点为输入框的中心位置。

接下来,我们再聊一下pos的问题:

 技术分享图片

 

 技术分享图片

 技术分享图片

pos指定的位置是基于原始视频画布的物理坐标,画布左上角为pos(0,0),右下角为pos(width/2,height/2);所以我们这里来看一下pos(0,0)的时候,改变an的参考点对齐方式,他的效果是怎么样的,看了,也许你就明白了。

An4_pos0_0:

 技术分享图片

An5_pos0_0:

 技术分享图片

An7_pos0_0:

 技术分享图片

 

转载请注明出处:https://www.cnblogs.com/lihaiping/p/11460790.html

 

(原)使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究

原文:https://www.cnblogs.com/lihaiping/p/11460790.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!