-1

我正在尝试使用 gstreamer-0.10 将 textoverlay 添加到 mp4 电影中。是的,我知道它很旧,但我只需要对 mp4 做一些更改。我知道如何使用 gst-launch-0.10:

gst-launch-0.10 filesrc location=input.mp4 name=src !decodebin 名称=解复用器解复用器。!队列 !textoverlay text="我的文字" !x264enc !混合器。解复用器。!队列 !音频转换!呸!混合器。mp4mux 名称=muxer !文件接收器位置=输出.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 中?干杯弗雷德里克

4

1 回答 1

0

我认为您应该在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 管道描述并要求提供现成的解决方案。

于 2015-11-08T21:33:27.557 回答