web-dev-qa-db-ja.com

タイマー付きのスケジュール録画ffmpeg 14.04

14.04のサウンドとビデオで設定時間後に停止する予約録画を設定するにはどうすればよいですか? 6時間先に1時間続く何かを記録したい。ビデオとサウンドが最高品質であり、ビデオ品質が元のストリームから低下しないことが本当に重要です。私の画面は1366x736です。

実際にm3uストリーム(iptv)から記録したいのですが、それが不可能な場合は、代わりに画面をキャプチャできます。

また、m3uストリームを直接記録する場合、デスクトップの記録に関する質問はできません。ビデオのサウンドを取得するには、記録中にpcのオーディオをオンにする必要がありますか?

前もって感謝します!

1
Timmy Johnson

ワンタイムスケジューリングの1つの方法は、 at コマンドです。

  1. スケジュールされた時間を入力します。

    at 4:00 PM
    
  2. 次に、実行するコマンドを入力する場所にプロンプ​​トが表示されます。

    ffmpeg -i input.m3u -c copy -t 01:00:00 output.foo
    
    • -c copyオプションは、 ストリームコピー モードを有効にします。これは、エンコードを追加するのではなく、単に再多重化するため、品質を保持します。

    • -t 01:00:00オプションは、期間を1時間に設定します。 ffmpegは1時間後に終了します。

  3. 次に ctrl+d コマンドを保存します。

これが定期的にスケジュールされるイベントである場合、代わりにcronjobを使用できます。

デスクトップ録画については、以下を参照してください。

2
llogan

次のようなシェルスクリプトを使用できます。

runtime_in_sec=3600
wait_time_in_sec=3600*6
sleep $wait_time_in_sec
ffmpeg <the options and the file> &  # alternatively use `avconv` instead of ffmpeg
PID=$!
sleep $runtime_in_sec
kill -9 $PID

正確な時間を設定したい場合は、小さなpythonスクリプトを使用するか、ipythonインタープリターだけを使用します。これは、日付と時刻の処理がはるかに簡単だからです。たとえば、秒の単純な計算にはtime.monotonic()を使用します...

0
oneindelijk