码迷,mamicode.com
首页 > 其他好文 > 详细

Gstreamer 视频字幕

时间:2014-12-05 11:00:40      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:gstreamer   字幕   

一、过程简述:

1、首先涉及到的插件式textoverlay,该插件中会探测流媒体是否包含字幕,如果有字幕将会调用pango与Cairo库,将字幕字符串转化为图片,以compositon为处理单元与视频buffer一起传递下去。

2.在vaapisink端,将会调用VaAssociate(),将字幕图片与视频帧融合在一块,一起显示。


二、性能提升:

在原理设计的基础上进行修改,之前的设计在显示每一帧的时候都会在video memory中创建一个subpicture,这种操作会导致大量的数据从system memory 中copy到video memory中,导致了只要有字幕出现,cpu的占用率都会提高很多,因此会耗费很多的资源。

改进:在每个视频surface中只要发现字幕不一样便会去创建subpicture,否则直接返回,这样同一个字幕创建的个数也就等于视频surface的个数,大大提高了之前每一帧都会去创建效率。

同时显示两种字幕流命令:

gst-launch-0.10 filesrc location=/root/video_test/DarkShadows_2ch_6ch_FIGS_17Tracks.mp4 ! \

qtdemux name=dmx \

multiqueue name=mq \

textoverlay name=tone \

textoverlay name=ttwo valignment=2 \

dmx.video_00 ! mq.sink0 mq.src0 ! vaapidecode ! tone.video_sink \

dmx.audio_00 ! mq.sink1 mq.src1 ! queue ! faad ! alsasink \

dmx.subtitle_00 ! mq.sink2 mq.src2 ! tone.text_sink \

dmx.subtitle_01 ! mq.sink3 mq.src3 ! ttwo.text_sink \

tone.src ! ttwo.video_sink ttwo.src ! vaapisink


Gstreamer 视频字幕

标签:gstreamer   字幕   

原文地址:http://eminzhang.blog.51cto.com/5292425/1586509

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!