스트리밍으로 생성된 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분의 코딩 시간을 절약할 수 있는 더 나은 솔루션이 있다면 자유롭게 다른 답변을 추가해 주시면 수락하겠습니다.

관련 정보