2016-04-12 25 views
0

ffmpegを使用してtvheadendからの入力ストリームを購読しており、そのストリームをディスクに連続的に書き込んでいます。私はこの出力ストリームを制限して、いつでも最大で10メガバイトのデータが保存されるようにしたいと思います。ffmpeg入力ストリームの出力ファイルサイズを10メガバイトに制限する方法

私は既にmoreutilsとlinux bufferコマンドのスポンジを調べて、ある種のパイプを構築しました。しかし、私はまだ実用的な解決策を見つけることができませんでした。誰が私を正しい方向に向けることができますか?

答えて

2

ちょうど-fsキーが必要です。 出力ファイルサイズの制限をバイト単位で設定します。

ffmpeg -i input -fs 10M -c copy outputと入力することができます。inputは入力アドレスで、output - ファイル名にすることができます。 Mは、サイズをメガバイトで指定します(また、キロバイトの場合はkが許可されます)。あなたはこの

#!/bin/bash 

t=1 
while : 
do 
ffmpeg -i input -fs 10M -c copy output$t 
t=`expr $t + 1` 
done 

のような小さなsriptを使用することができます上書きする


私はこれが唯一のffmpegを使用して、すべてをやろうとしているよりもエレガントだと思います。

+0

thanx -fsオプションはffmpegを停止します。私はセグメントを連続的に上書きしたいと思います。私は私が必要とするものに非常に近い良い解決策を見つけたと思う。 -f ssegment -segment_time 60 -segment_wrap 2 tmp/out%03d.ts – Jabb

+0

私が行った編集をご覧ください。あなたに役立つ小さなスクリプトがあります。 – Ngoral

+0

ありがとうございます。私は同意しない。 sthを実装するのではなく、ネイティブのffmpeg関数を使用する方がよりエレガントです。外部。しかし、あなたの解決策がより正確なので、私は答えとしてそれを受け入れます。 – Jabb

関連する問題