我正在尝试使用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中? 干杯弗雷德里克
答案 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管道描述,并要求提供即用型解决方案。