ストリーミングで生成されたflacファイルに不足している長さヘッダーを追加する

ストリーミングで生成されたflacファイルに不足している長さヘッダーを追加する

私が持っているように最近学んだこと、エンコードされたflacデータをSTDOUTに送信することによって生成されたflacファイルには、一部のメタデータ、特に記録長に関する情報がありません。

このデータを遡及して追加できますか?wavでデコードしてデータを再エンコードする必要はありません。(データはwavファイルに比べて大きすぎます、flacはwavで幸せにデコードされますが、エラーが発生し、その後のflacへの再エンコードを拒否しますか?役に立つ場合は、録音の正確な長さを知っています。


ちょっと気になりました:7日間のオーディオ録音をflacからwavに、その逆にデコードして再エンコードすると、これが起こります。

flac --decode test.flac 

flac 1.3.1, Copyright (C) 2000-2009  Josh Coalson, 2011-2014  Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

test.flac: WARNING, cannot check MD5 signature since it was unset in the STREAMINFO
done         
test.flac: ERROR: stream is too big to fit in a single WAVE file

これで、VLCでうまく再生され、適切な長さ情報を含むwavファイルが作成されました。録音してみてください:

flac test.wav --best --output-name="test2.flac"

flac 1.3.1, Copyright (C) 2000-2009  Josh Coalson, 2011-2014  Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

test.wav: ERROR: 'data' chunk has size of 0

ベストアンサー1

私が見つけた唯一の解決策は、soxを使用してすべてを再エンコードすることです。

sox test.flac test_full.flac --show-progress

これにより、録音全体を取得してデコードしてから、flacで再エンコードします。非効率的ですが、まだ作業を完了します。 10分のコーディング時間を節約できるより良いソリューションがある場合は、自由に別の回答を追加してください。

おすすめ記事