Gstreamer 命令可预览视频并将视频录制为 mp4

问题描述 投票:0回答:1

我是 gstreamer 新手。我正在尝试编写一个命令来显示源(例如网络摄像头)中正在运行的视频并将视频录制到 mp4。

我单独尝试过

gst-launch-1.0 v4l2src device=/dev/video0 ! decodebin ! videoconvert ! autovideosink

显示视频,并且

gst-launch-1.0 -e v4l2src device=/dev/video0 ! decodebin ! videoconvert ! x264enc ! mp4mux ! filesink location=output.mp4

录制视频。两个命令的行为都符合预期。然而,当我尝试使用

将两者结合起来时

gst-launch-1.0 -e v4l2src device=/dev/video0 ! decodebin ! videoconvert ! tee name=t t. ! autovideosink t. ! x264enc ! mp4mux ! filesink location=output.mp4

它不起作用。显示冻结并且生成的 mp4 没有任何值(0 字节)。我尝试在每个分支的

queue
之后添加
tee
,例如

gst-launch-1.0 -e v4l2src device=/dev/video0 ! decodebin ! videoconvert ! tee name=t t. ! queue ! autovideosink t. ! queue ! x264enc ! mp4mux ! filesink location=output.mp4

但问题仍然存在。

我该如何解决这个问题?谢谢你

linux gstreamer gstreamer-1.0
1个回答
0
投票

如果 HEVC 适合您,您可以使用以下管道

gst-launch-1.0 videotestsrc ! tee name=t ! queue ! autovideosink t. ! queue ! x265enc ! filesink location="output.mp4"

我使用 videotestsrc 因为我没有网络摄像头。

© www.soinside.com 2019 - 2024. All rights reserved.