アフィリエイト広告を利用しています

広告

posted by fanblog

Jetson Nano - その9: GstreamerでRTSPサーバーのビデオをキャプチャ

RTSPサーバーのビデオをキャプチャ

忘れないためのメモになります。

RTSPサーバーを以下のコマンドで起動していると思いますが・・・
./test-launch "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, framerate=30/1 ! omxh264enc ! queue ! rtph264pay name=pay0 pt=96"



それに対して、受け側は、以下のコマンドでH264で受信して そのままmp4のファイルに落とします。

gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test ! rtph264depay ! h264parse ! qtmux ! filesink location=test1.mp4 -e


ここで、CTL-Cでこの処理を止める場合、 "-e"オプションが重要とのこと。
ここのサイト に以下のように書いていました。

Add -e to your command line. In that case when you press ctrl-c the pipeline will not just stop but is being properly shut down by sending an EOS signal through the pipeline.

ファイルは生成できるのに再生できなくてハマりました。。



Pythonで実行
Pythonで同じような処理をしたいと思います。

rec_video.shというスクリプトファイルを以下の内容で作成。
( ここのサイト を参考にdateコマンドで日付時間をファイル名に付加しています。)
#!/bin/bash
gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test ! rtph264depay ! h264parse ! qtmux ! filesink location=video_`date "+%Y%m%d_%H%M_%S"`.mp4 -e


Pythonで以下を実行。
(シグナルの送信に関しては、 ここのサイト を参考。)
import subprocess
import signal
import os
p = subprocess.Popen('./rec_video.sh', shell=True, preexec_fn=os.setsid) <= Rec開始
os.killpg(os.getpgid(p.pid), signal.SIGINT) <= 終了


トラックバック

コメント

お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのコメント

×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: