Opened 5 years ago

Closed 4 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 cehoyos 4 years ago.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 5 years ago by cehoyos

  • Component changed from undetermined to avcodec
  • Priority changed from critical to wish
  • Reproduced by developer set
  • Status changed from new to open
  • Type changed from defect to enhancement
  • Version changed from git to git-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 Changed 5 years ago by cehoyos

  • Summary changed from bit depth loss with 'lossless' encoding! to 24bit flac encoding

comment:3 Changed 5 years ago by Atrocia

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 Changed 5 years ago by michael

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

comment:5 Changed 5 years ago by cehoyos

  • Keywords flac added

comment:6 Changed 4 years ago by dericed

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 Changed 4 years ago by cehoyos

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

comment:8 Changed 4 years ago by holunder2

Please check this patch from 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. :)

Version 0, edited 4 years ago by holunder2 (next)

comment:9 follow-up: Changed 4 years ago by cehoyos

  • Cc holunder2 added

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

Changed 4 years ago by cehoyos

comment:10 in reply to: ↑ 9 Changed 4 years ago by michael

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 Changed 4 years ago by holunder2

»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 Changed 4 years ago by cehoyos

  • Resolution set to fixed
  • Status changed from open to closed

Implemented by Justin.

Note: See TracTickets for help on using tickets.