ウェブカメラでffmpeg
を使用してビデオを録画するデバイスがあります。録音が開始されると、USR1信号が聞こえます。録音を停止した後、USR2信号を受信します。
しかし、私は1時間の記録時間後に記録を停止したい。
わかりませんが、1時間後にUSR2信号をデバイスに渡す必要があると思います。
どうすればこれを行うことができます... !!!
前もって感謝します。
-t
オプションを使用します。 man ffmpeg
から:
-t
duration(入力/出力)入力オプションとして使用する場合(
-i
の前)、入力ファイルから読み取るデータのdurationを制限します。出力オプションとして(出力ファイル名の前に)使用する場合は、継続時間がdurationに達した後に出力の書き込みを停止します。
durationは期間指定である必要があります。ffmpeg-utils(1)マニュアルの Time durationセクションを参照してください 。
-to
と-t
は相互に排他的であり、-t
が優先されます。
1時間記録する例:
ffmpeg -f v4l2 -i /dev/video0 -t 01:00:00 output
または数秒で:
ffmpeg -f v4l2 -i /dev/video0 -t 3600 output
コマンドラインからffmpegまたはavconvを実行している場合、timeout
コマンドを使用できます。
timeout 3600 avconv -f video4linux2 -r 25 -i /dev/video0 -vcodec mpeg4 -y out.mp4
タイムアウトが事前にわかっている場合は、指定されたメソッドを明確に使用する必要がありますが、プロセスに本当にシグナルを送信したい場合は、killコマンドを使用できます(TERMまたはKILL、任意のシグナルを送信できます-kill -s USR2 pid)