後でタイムシフトで再生できるように、スクリプトにオーディオを録音しています。
スクリプトは、ストリームがまだアクティブであるか定期的にチェックします。時々ライブ放送ストリームは中断されます。この場合、新しいダンプファイルから録音を再開したいと思います。
実際の録音はmplayerを使って行われます。
/usr/bin/mplayer -novideo -dumpaudio http://194.232.200.147:8000 -dumpfile orf_salzburg_1566868130-1566868130.mp3
定期的にファイルサイズをチェックして、ストリームがまだアクティブであることを確認します。増加が止まると、再び録音を始めました。
このバージョンのmplayerは古いDebianシステムでうまく動作します:
MPlayer svn r34540 (Debian), built with gcc-4.7 (C) 2000-2012 MPlayer Team
今、このバージョンを使用して新しいコンピュータで開発を進めています。
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
以前のバージョンはすぐにファイルに書き込まれます。 100msごとに書き込み用にファイルを照会すると、ファイルサイズが100msごとに増加することがわかります。
ただし、新しいmplayerバージョンでは、ファイルは256kbyteチャンクとして記録されます。ファイルサイズの増加には最大16秒かかることがあります。
奇妙なことに、新しいmplayerでさえコマンドラインに書き込まれる連続バイト数を報告します。しかし、実際にはop 256kブロックのみです。
私はこの問題がmplayerのffmpegライブラリを使用していると思います。 FFmpegは256kbyteごとに更新されます。ただし、ffmpegには出力を更新するオプションがあります。それは見ているようにmplayerにはありません。
ファイルサイズの増加を確認するためにスクリプトの期間を変更するのは簡単です。ちなみに20〜30秒に変更すると、ストリーミングが中断されるとオーディオが大量に失われます。
mplayerを元の動作に復元する方法に関する提案はありますか?