Opened 13 years ago

Closed 11 years ago

#210 closed enhancement (fixed)

24bit flac encoding

Reported by: Atrocia Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: flac
Cc: holunder2 Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

I have 48 KHz / 24 bit audio files created by the Zoom H1 audio recorder; e.g.:

$ mediainfo sample.WAV
General
Complete name : sample.WAV
Format : Wave
File size : 2.75 MiB
Duration : 10s 0ms
Overall bit rate : 2 304 Kbps

Audio
ID : 0
Format : PCM
Format settings, Endianness : Little
Codec ID : 1
Codec ID/Hint : Microsoft
Duration : 10s 0ms
Bit rate : 2 304 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Stream size : 2.75 MiB (100%)

When I convert them to flac format, they become 16 bit:

$ ffmpeg -i sample.WAV sample.flac

...

$ mediainfo sample.flac
General
Complete name : sample.flac
Format : FLAC
Format/Info : Free Lossless Audio Codec
File size : 695 KiB
Duration : 10s 0ms
Overall bit rate : 569 Kbps
Writing application : Lavf53.0.3

Audio
Format : FLAC
Format/Info : Free Lossless Audio Codec
Duration : 10s 0ms
Bit rate mode : Variable
Bit rate : 563 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Stream size : 687 KiB (99%)
Writing library : Lavf53.0.3

ffmpeg (git-N-29954-gfc19379) throws this warning - I don't know if it's relevant:

Incompatible sample format 's32' for codec 'flac', auto-selecting format 's16'

The 'flac' tool, from the flac project, handles these files correctly:

$ flac sample.WAV

...

$ mediainfo sample.flac
General
Complete name : sample.flac
Format : FLAC
Format/Info : Free Lossless Audio Codec
File size : 1.59 MiB
Duration : 10s 0ms
Overall bit rate : 1 336 Kbps

Audio
Format : FLAC
Format/Info : Free Lossless Audio Codec
Duration : 10s 0ms
Bit rate mode : Variable
Bit rate : 1 329 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Stream size : 1.58 MiB (100%)
Writing library : libFLAC 1.2.1 (UTC 2007-09-17)

flac gives this warning - no idea if this is related to the one ffmpeg gives:

sample.WAV: WARNING: legacy WAVE file has format type 1 but bits-per-sample=24

Attachments (1)

mmffmpeg-1.7.7.patch.gz (3.8 KB ) - added by Carl Eugen Hoyos 11 years ago.

Download all attachments as: .zip

Change History (13)

comment:1 by Carl Eugen Hoyos, 13 years ago

Component: undeterminedavcodec
Priority: criticalwish
Reproduced by developer: set
Status: newopen
Type: defectenhancement
Version: gitgit-master

For future reports, please provide complete, uncut output of your ffmpeg-command (including the command line), third party application output is almost never needed.

FFmpeg warns that its flac-encoder does not support 24 (or 32) bit and the content was therefore down-sampled, so this is a feature request.

comment:2 by Carl Eugen Hoyos, 13 years ago

Summary: bit depth loss with 'lossless' encoding!24bit flac encoding

comment:3 by Atrocia, 13 years ago

Ok, thanks for the reporting tip. I understand that this should be called a feature request, but I still suggest that in the interim there be a clearer warning - after all, flac is synonymous with lossless encoding. Doing lossy encoding, with only a somewhat obscure warning, could result in permanent data loss if the user doesn't keep the original file.

comment:4 by Michael Niedermayer, 13 years ago

Ive added a better warning locally, will be in git with my next push

comment:5 by Carl Eugen Hoyos, 12 years ago

Keywords: flac added

comment:6 by dave rice, 12 years ago

The warning that Michael mentioned a year ago seems to no longer be enabled. Using an ffmpeg compiled from git on July 21, 2011 I would get a warning "Convertion will not be lossless'" in this scenario. In the latest git master 24 bit audio converts to 16 bit for flac encoding with no warning. pastebin here: http://pastebin.com/kGpT7fPj

comment:7 by Carl Eugen Hoyos, 12 years ago

Please do not use external resources if you want to provide console output, but paste it here.

comment:8 by holunder2, 11 years ago

Please check this patch by MakeMKV developer for 24 bit FLAC encoding: http://www.makemkv.com/download/ffmpeg/
I don't know if he has submitted the patch to ffmpeg, but it would very great if this would go upstream. :)

Last edited 11 years ago by holunder2 (previous) (diff)

comment:9 by Carl Eugen Hoyos, 11 years ago

Cc: holunder2 added

I suspect this patch needs at least a copyright statement before it can be considered for inclusion.

by Carl Eugen Hoyos, 11 years ago

Attachment: mmffmpeg-1.7.7.patch.gz added

in reply to:  9 comment:10 by Michael Niedermayer, 11 years ago

Replying to cehoyos:

I suspect this patch needs at least a copyright statement before it can be considered for inclusion.

who should be credited as author if we merge something from this patch ?

comment:11 by holunder2, 11 years ago

»This patch is Public domain. No copyright is claimed. Feel free to give a link to this page.« http://www.makemkv.com/forum2/viewtopic.php?p=23025#p23025

comment:12 by Carl Eugen Hoyos, 11 years ago

Resolution: fixed
Status: openclosed

Implemented by Justin.

Note: See TracTickets for help on using tickets.