gstreamer在c ++中添加textoverlay

时间:2015-11-05 17:24:33

标签: c++ video gstreamer qtgstreamer

我正在尝试使用gstreamer-0.10为tex4电影添加textoverlay。是的,我知道它已经老了,但我只需要对mp4做一些改动。我知道如何使用gst-launch-0.10:

  

gst-launch-0.10 filesrc location = input.mp4 name = src! decodebin   name = 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中? 干杯弗雷德里克

1 个答案:

答案 0 :(得分:0)

我认为您应该在 ffmpegcolorspace queue 元素之间的管道描述中添加队列 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);

我认为您收到了downvote,因为您没有尝试了解GStreamer管道描述,并要求提供即用型解决方案。