在解码文件或流时,是否有人知道应该将queue放在管道中的位置?以下所有行为似乎都是相同的:
gst-launch-1.0 filesrc location=r_25_1920.mp4 ! qtdemux name=demuxer demuxer. ! **queue** ! avdec_h264 ! autovideosink
gst-launch-1.0 rtspsrc location=rtsp://192.168.100.60:554/stream1 latency=0 ! rtph264depay ! **queue** ! avdec_h264 ! autovideosink
gst-launch-1.0 filesrc location=r_25_1920.mp4 ! **queue** ! qtdemux name=demuxer demuxer. ! avdec_h264 ! autovideosink
gst-launch-1.0 rtspsrc location=rtsp://192.168.100.60:554/stream1 latency=0 ! **queue**! rtph264depay ! avdec_h264 ! autovideosink
gst-launch-1.0 filesrc location=r_25_1920.mp4 ! qtdemux name=demuxer demuxer. ! avdec_h264 ! **queue** ! autovideosink
gst-launch-1.0 rtspsrc location=rtsp://192.168.100.60:554/stream1 latency=0 ! rtph264depay ! avdec_h264 ! **queue** ! autovideosink
发布于 2022-04-20 18:28:33
更熟练的人可能会更好地回答,但我不认为排队对这种情况有很大帮助。
队列具有许多可以设置的属性,以便具有不同的行为。您可以使用gst-inspect-1.0 queue检查这些内容,然后使用。
如果没有任何与默认设置不同的属性,队列主要用于解决在使用并行管道时可能发生的死锁/争用/同步问题,如tee/demuxer/.从一个中创建多个流,其中在每个传出子管道前面使用队列,例如:
...your_source_stream ! tee name=t \
t. ! queue ! some_processing... \
t. ! queue ! some_other_processing...因此,您的情况的正确位置将在qtdemux之后,但在从该容器中提取第二个流之前可能没有用。
或者相反,当将多个流放入mux /compositor/.时,您将在mux之前的每个传入流的尾部添加队列:
...some_input ! queue ! mux.sink_0 \
...some_other_input ! queue ! mux.sink_1 \
somemux name=mux ! what_you_do_with_muxed_stream...https://stackoverflow.com/questions/71938793
复制相似问题