在Windows上,使用gst 1.8.2 (从1.6开始),我使用下面的gst-launch管道从多个IP摄像头流到单个mp4文件中创建mp4文件(我重新格式化了我的gst-launch命令,以便在这里看起来更好,但它们是单行):
mp4mux name=m ! filesink location=file.mp4
rtspsrc location="rtsp://x" latency=0 name=Camera1 ! rtph264depay ! h264parse ! tee name=t1
t1. ! queue ! m.video_1
t1. ! queue ! decodebin ! autovideosink name=video1
rtspsrc location="rtsp://y" latency=0 name=Camera2 ! rtph264depay ! h264parse ! tee name=t2
t2. ! queue ! m.video_2
t2. ! queue ! decodebin ! autovideosink name=video2我可以使用VLC媒体播放器播放生成的文件,但不能使用gstreamer播放该文件。当我创建像这样的管道时
gst-launch-1.0 uridecodebin name=u uri=file:/file.mp4
u.src_0 ! queue ! autovideosink
u.src_1 ! queue ! autovideosink它永远不会播放。在等待视频的时候,我看到
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...当我稍后按ctrl-c组合键时,响应是
handling interrupt.
Interrupt: Stopping pipeline ...
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...一位同事在他的Mac上尝试同样的命令,得到同样的结果。
我设置了环境变量来生成"DOT“管道图形文件。他们没有显示正确的视频格式,宽度或高度;我猜它永远不会走那么远。我遵循了otopolsky的方法,使用了一个命令行示例和我的程序,使用了一个单独的相机。
有谁有什么想法吗?
谢谢。
-reilly。
发布于 2016-07-22 23:11:05
我想您在开始时忘记将-e添加到gst-launch中了。我使用简化版本的管道进行了测试:
gst-launch-1.0 -e mp4mux name=m ! filesink location=file.mp4 videotestsrc ! x264enc ! m.video_1 videotestsrc ! x264enc ! m.video_2然后像这样演奏。您的uri错误..您需要提供完整路径或使用filesrc (位置可以是相对的)和decodebin。
这是正确的管道-不确定如何在windows中做pwd,所以请使用完整路径..
gst-launch-1.0 uridecodebin name=u uri=file://`pwd`/file.mp4 ! video/x-raw ! queue ! videoconvert ! autovideosink u. ! video/x-raw ! queue ! videoconvert ! autovideosink https://stackoverflow.com/questions/38528932
复制相似问题