私はこれを行うためにffmpegを使用しています...
nohup ffplay -reorder_queue_size 0 -nostats -i /tmp/stl-app/stream.sdp -protocol_whitelist "file,http,https,tcp,tls,udp,rtp" -nodisp -af astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level &> /tmp/stl-app/stream-stats.log &
私が持っている問題は、100Mの空き容量が設定されたtmpfsドライブがあることです。約90分後、このスペースはすべて使用されます。 stream-stats.logに空のファイルをエコーして削除してみました。ただし、FFMPEGがファイルを書き込む方法のために削除すると、ファイルに書き換えられません。毎分ファイルを消去するか、少なくとも読み続けることができる管理可能なサイズに制限する方法が必要です。
実際には毎秒1回更新するだけで、明らかにファイルを保持する必要はありません。この問題を処理する正しい方法は何ですか?
更新@gyanの推奨事項に従って、/tmp/stl-app/icecaststatsにパイプを作成し、次のようにコマンドを再実行しました。
nohup ffplay -reorder_queue_size 0 -nostats -i /tmp/stl-app/stream.sdp -protocol_whitelist "file,http,https,tcp,tls,udp,rtp" -nodisp -af astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level > /tmp/stl-app/icecaststats &
しかし、何が理由であるか、そこにデータが全くありませんか?
答え1
だから私にとって効果的な解決策は-afフラグを更新することです。
ffplay -autoexit -nodisp -f mp3 -i $ICECASTURL -af asetnsamples=44100,astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level
asetnsamples を設定すると、ffplay で目的のサンプルサイズがわかります。オーディオは44100Hzで動作しているので、サンプルサイズを対応する周波数に設定して毎秒更新します。ログインファイルのサイズが大幅に減少しました。