gstreamer在c ++中添加textoverlay

我试图用gstreamer-0.10将一个textoverlay添加到mp4电影中。 是的,我知道它的老,但我只需要对mp4做一些改变。 我知道如何用gst-launch-0.10来做到这一点:

gst-launch-0.10 filesrc location = input.mp4 name = src! 解码器名称= demuxer demuxer。 ! 队列! textoverlay text =“我的文字”! x264enc! 复用器。 分路器。 ! 队列! audioconvert! voaacenc! 复用器。 mp4mux name = muxer! filesink location = output.mp4

这为我创建了一个文本覆盖电影。 但是现在我需要在cpp中的以下bin中添加textoverlay - 这是我创建mp4的工作管道:

QGst::BinPtr m_encBin = QGst::Bin::fromDescription( 
   "filesrc location=""+path+"videoname.raw.mkv" ! queue ! matroskademux name="demux" " 
   "demux.video_00 ! queue ! ffmpegcolorspace ! queue ! x264enc ! queue ! mux.video_00 " 
   "demux.audio_00 ! queue ! audioconvert ! queue ! faac ! queue ! mux.audio_00 " 
   "mp4mux name="mux" ! queue ! filesink name="filesink" sync=false ",
   QGst::Bin::NoGhost);

任何人都知道如何将textoverlay添加到bin中? 干杯弗雷德里克


我认为你应该在ffmpegcolorspace队列元素之间的管道描述中添加队列textoverlay元素:

QGst::BinPtr m_encBin = QGst::Bin::fromDescription( 
   "filesrc location=""+path+"videoname.raw.mkv" ! queue ! matroskademux name="demux" " 
   "demux.video_00 ! queue ! ffmpegcolorspace ! queue ! textoverlay text="My Text" ! queue ! x264enc ! queue ! mux.video_00 " 
   "demux.audio_00 ! queue ! audioconvert ! queue ! faac ! queue ! mux.audio_00 " 
   "mp4mux name="mux" ! queue ! filesink name="filesink" sync=false ",
   QGst::Bin::NoGhost);

我认为你收到了倒退,因为你没有尝试了解GStreamer管道描述,并要求提供随时可用的解决方案。

链接地址: http://www.djcxy.com/p/7643.html

上一篇: gstreamer add textoverlay in c++

下一篇: convert mp4 video to avi video with GStreamer