web-dev-qa-db-ja.com

一定時間後に録音を停止します

ウェブカメラでffmpegを使用してビデオを録画するデバイスがあります。録音が開始されると、USR1信号が聞こえます。録音を停止した後、USR2信号を受信します。

しかし、私は1時間の記録時間後に記録を停止したい。

わかりませんが、1時間後にUSR2信号をデバイスに渡す必要があると思います。

どうすればこれを行うことができます... !!!

前もって感謝します。

10

-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
21
llogan

コマンドラインからffmpegまたはavconvを実行している場合、timeoutコマンドを使用できます。

timeout 3600 avconv -f video4linux2 -r 25 -i /dev/video0  -vcodec mpeg4 -y out.mp4
4
Sylvain Pineau

タイムアウトが事前にわかっている場合は、指定されたメソッドを明確に使用する必要がありますが、プロセスに本当にシグナルを送信したい場合は、killコマンドを使用できます(TERMまたはKILL、任意のシグナルを送信できます-kill -s USR2 pid)

0