gpt4 book ai didi

bash - 使用 Gstreamer textoverlay 插件在视频文件上叠加文本

转载 作者:行者123 更新时间:2023-11-29 09:21:48 25 4
gpt4 key购买 nike

我正在使用以下命令来执行此操作:

/usr/local/bin/gst-launch-1.0 filesrc location=/home/ubuntu/DELTA.mpg ! textoverlay text="Hello" ! filesink location=/home/ubuntu/delta2.mpg

但是我得到了这个输出:

ubuntu@ip-10-185-10-118:~$ /usr/local/bin/gst-launch-1.0 filesrc location=/home/ubuntu/DELTA.mpg  ! textoverlay text="Hello" ! filesink location=file4.mpg
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPipeline:pipeline0/GstTextOverlay:textoverlay0: Could
not multiplex stream.
Additional debug info:
gstbasetextoverlay.c(1892): gst_base_text_overlay_video_event(): /GstPipeline:pipeline0/GstTextOverlay:textoverlay0:
received non-TIME newsegment event on video input
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:00.024475840
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
ubuntu@ip-10-185-10-118:~$

我在这里做错了什么?

最佳答案

这里的问题是您试图在未解码的流上覆盖文本。 filesrc 元素只是从文件中读取数据并输出原始字节。您需要先对其进行解码,然后覆盖文本,然后对其进行编码并写入文件。

这是简单的预览管道:

$ gst-launch  filesrc location=test.mpg \
! decodebin2 ! textoverlay text=Hello ! xvimagesink

下面是覆盖文本并将视频编码回文件的管道:

$ gst-launch \
filesrc location=test.mpg \
! decodebin2 name=demuxer \
demuxer. \
! textoverlay text=Hello \
! x264enc ! muxer. \
demuxer. ! audioconvert ! vorbisenc ! muxer. \
matroskamux name=muxer \
! filesink location=output.mkv

我使用不同的输出格式只是为了不依赖于额外的 gstreamer 插件。您可以将 vorbisenc 切换为 faac 并将 matroskamux 切换为 mpegtsmux 以获取 output.mpg文件。

关于bash - 使用 Gstreamer textoverlay 插件在视频文件上叠加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22247029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com