2014-09-04 37 views
0

欧凯我有这样的命令:添加textoverlay到RTPS蒸汽并将其保存到一个文件

这一个显示与textoverlay流过它

gst-launch-1.0 rtspsrc location=rtsp://ip/url ! decodebin ! textoverlay text = "Hello world" ! autovideosink 

这一次使用可以节省流的MP4 MP4容器

gst-launch-1.0 rtspsrc location=rtsp://ip/url ! rtsh264depay ! h264parse ! mp4mux ! filesink location=someFile.mp4 

我怎么能在同一时间做到这一点?我的意思是我想保存覆盖文字的文件?如果我理解得很好,我应该用decodebin解码,然后再解码,但Iam比特丢失了。

回答

0

这是相当简单,你基本上有它。

如果你结合你的两个管道,它应该工作得很好(取决于帽等)。

gst-launch-1.0 rtspsrc location=rtsp://ip/url ! decodebin ! textoverlay text = "Hello world" ! x264enc ! h264parse ! mp4mux ! filesink location=someFile.mp4 

同样的想法,但采用MPEG4

gst-launch-1.0 rtspsrc location=rtsp://ip/url ! decodebin ! textoverlay text = "Hello world" ! avenc_mpeg4 ! mp4mux ! filesink location=someFile.mp4 
+0

嗯,我阅读文档后,想出了同样的想法。 Rtspsrc有1个pad和source(输出x/rtps)。解码器有1个sink和1个source pad,它可以接受sink上的x/rtps。解码器源输出是一个原始视频.Textoverlay有1个sink和1个source pad都接受/生成原始video.X264enc原始视频到原始h264视频。 h264parse解析that.mp4mux是将它添加到一个多路复用器,最后我们有filesink它合法,如果你认为逻辑上,但写在终端后,我得到错误。 – 2014-09-05 06:42:46

+0

此文件不包含可播放流 – 2014-09-05 07:11:43

+0

然后在mpeg4中进行编码,而不是在h264 – 2014-09-05 12:42:07

相关问题