EOS パイプライン gstreamer の送信

EOS パイプライン gstreamer の送信

gstreamer パイプラインの例を以下に示します。gst-launch-1.0 v4l2src device=/dev/video2 ! image/jpeg,width=1280, height=800, framerate=30/1 ! v4l2jpegdec ! queue ! v4l2h264enc extra-controls="controls, h264_profile=4, video_bitrate=620000" ! 'video/x-h264, profile=high, level=(string)4' ! h264parse ! matroskamux ! filesink location=output2.mkv

コマンドラインから実行します。プロセスを強制終了するために ctrl+c を実行する代わりに、プロセスに EOS イベントを送信します。

これは可能ですか? もし可能であれば、誰かがそれをやったことがありますか、または解決策は何ですか?

答え1

これを実行する方法が見つかりませんでしたが、watchdog timeout=1000パイプに追加してビデオ入力を切断すると、ウォッチドッグがストリームを終了し、EOS を生成します。また、-eビデオ ファイルが適切に閉じられていることを確認するために、コマンドの最後に を追加しました。

 gst-launch-1.0.exe rtspsrc location=rtsp://192.168.189.3:8554/bandwidth_h264 latency=0 ! decodebin ! watchdog timeout=1000 ! tee name=split split.! queue leaky=1 ! autovideosink sync=false split.! queue leaky=1 ! videoconvert ! x264enc ! mp4mux ! filesink location=c:/demo/test.mp4 -e

関連情報