每个分支上具有不同功能的 Gstreamer Tee
Gstreamer Tee with different capabilities on each branch
我有一个类似于此的 gstreamer 管道。
Queue -> videoscale -> videosink
/
appsrc -> h264_decoder -> Tee
\
Queue -> jpegenc -> multifilesink
关于解码器垫的功能,Tee 如何工作?是否可以在两个分支上设置不同的能力?
具体来说,是否可以设置两个不同的帧率? Filesink 以 1 fps 的速度存储,而 videosink 以 30 fps 的速度显示。
我正在使用以下命令行进行测试。
gst-launch-1.0 -e \
filesrc location= ! queue ! qtdemux name=d d.video_0 ! h264parse ! avdec_h264 ! tee name=t \
t. ! queue ! videoscale ! 'video/x-raw,width=(int)960,height=(int)540' ! autovideosink \
t. ! queue ! 'video/x-raw,framerate=1/1' ! jpegenc ! multifilesink location=out/img1_%03d.jpeg
但是我得到了 'Internal data flow error' 和 'reason not-linked'。
问题是您在管道的每个分支上要求不同的帧率。
您忘记实例化一个元素,该元素为您提供录制分支预期的 1/1 帧率。 videorate
做那个工作。
这是我建议的工作流水线:
gst-launch-1.0 -e \
filesrc location= ! queue ! qtdemux name=d d.video_0 ! h264parse ! avdec_h264 ! tee name=t \
t. ! queue ! videoscale ! 'video/x-raw,width=(int)960,height=(int)540' ! autovideosink \
t. ! queue ! videorate ! 'video/x-raw,framerate=1/1' ! jpegenc ! multifilesink location=out/img1_%03d.jpeg
我有一个类似于此的 gstreamer 管道。
Queue -> videoscale -> videosink
/
appsrc -> h264_decoder -> Tee
\
Queue -> jpegenc -> multifilesink
关于解码器垫的功能,Tee 如何工作?是否可以在两个分支上设置不同的能力?
具体来说,是否可以设置两个不同的帧率? Filesink 以 1 fps 的速度存储,而 videosink 以 30 fps 的速度显示。
我正在使用以下命令行进行测试。
gst-launch-1.0 -e \
filesrc location= ! queue ! qtdemux name=d d.video_0 ! h264parse ! avdec_h264 ! tee name=t \
t. ! queue ! videoscale ! 'video/x-raw,width=(int)960,height=(int)540' ! autovideosink \
t. ! queue ! 'video/x-raw,framerate=1/1' ! jpegenc ! multifilesink location=out/img1_%03d.jpeg
但是我得到了 'Internal data flow error' 和 'reason not-linked'。
问题是您在管道的每个分支上要求不同的帧率。
您忘记实例化一个元素,该元素为您提供录制分支预期的 1/1 帧率。 videorate
做那个工作。
这是我建议的工作流水线:
gst-launch-1.0 -e \
filesrc location= ! queue ! qtdemux name=d d.video_0 ! h264parse ! avdec_h264 ! tee name=t \
t. ! queue ! videoscale ! 'video/x-raw,width=(int)960,height=(int)540' ! autovideosink \
t. ! queue ! videorate ! 'video/x-raw,framerate=1/1' ! jpegenc ! multifilesink location=out/img1_%03d.jpeg