nschlia / ffmpegfs

FUSE-based transcoding filesystem with video support from many formats to FLAC, MP4, TS, WebM, OGG, MP3, HLS, and others.
https://nschlia.github.io/ffmpegfs/
GNU General Public License v3.0
198 stars 14 forks source link

AIFF needs preliminary header (see WAV) #107

Closed nschlia closed 2 years ago

nschlia commented 2 years ago

AIFF files need to have a preliminary ("fake") header added like it is done for WAV. Some software does not accept the files before they are completely recoded (and the header had been finally added).

Can be tested with ffprobe:

1st run (starts trancoding)

ffprobe -hide_banner '05 - Subway To Sally - Tanz Auf Dem Vulkan.flac.aiff'
[aiff @ 0x55c8dfc02a00] could not find COMM tag or invalid block_align value
05 - Subway To Sally - Tanz Auf Dem Vulkan.flac.aiff: Operation not permitted

Result: COMM tag missing

2nd run (file was completely transcoded during 1st run):

fprobe -hide_banner '05 - Subway To Sally - Tanz Auf Dem Vulkan.flac.aiff'
Input #0, aiff, from '05 - Subway To Sally - Tanz Auf Dem Vulkan.flac.aiff':
  Metadata:
    title           : Tanz Auf Dem Vulkan
  Duration: 00:03:19.68, start: 0.000000, bitrate: 2822 kb/s
    Stream #0:0: Audio: pcm_s32be, 44100 Hz, 2 channels, s32, 2822 kb/s

Result: OK

The error message states exactly what the problem is: The COMM header is actually there, but the size fields are 0, they should be filled in with something reasonable, like WAV were the predicted size is used and later updated with the real value.

This will allow players and other software to start immediately.