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