Como determinar a profundidade de bits AAC

1

Com um arquivo wav , por exemplo, você pode facilmente distinguir entre profundidades de bit

24 bits

Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, 
                    s32, 2116 kb/s

16 bits

Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo,
                    s16, 1411 kb/s

No entanto, o AAC parece inescrutável

Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo,
                         fltp, 151 kb/s
    
por Steven Penny 18.02.2013 / 01:16

2 respostas

9

AAC é um formato com perdas (como MP3) e como Wikipedia (na verdade, o mesmo artigo ao qual você está vinculado) explica:

Bit depth is only meaningful in reference to a PCM digital signal. Non-PCM formats, such as lossy compression formats, do not have associated bit depths. For example, in MP3, quantization is performed on PCM samples that have been transformed into the frequency domain.

    
por 18.02.2013 / 01:48
3

O ffprobe reporta a profundidade de bits correta, mas apenas quando há uma profundidade de bits a ser reportada , caso contrário, ele informa corretamente que a "profundidade de bits" não é aplicável (N / A).

No relatório do FFmpeg sobre o campo de dados "bits_per_raw_sample" e por Karans answer , "bit-depth" é um nome impróprio para Áudio codificado por AAC.

Se você estiver tentando analisar o arquivo de dados, convém grep -e para "codec_name" identificar quais fluxos (vídeo, áudio, texto) estão sendo reportados pelo "bits_per_raw_sample". Isso facilita saber se o status de profundidade de bit reportado está relacionado ao codec de vídeo ou ao codec de áudio:

$ ffprobe -show_streams <input_file.mp4> | grep -e codec_name -e bits_per_raw_sample

... exemplo de um relatório de arquivo de dados de vídeo e áudio resultante:

codec_name=h264           <----- video
bits_per_raw_sample=8     <----- 8-bit depth video
codec_name=aac            <----- AAC audio
bits_per_raw_sample=N/A   <----- bit depth is "Not Applicable" to AAC audio

Você pode gostar deste artigo, " Audio Encoding Demystified "

Bit depth

Along with sample rate, there is also bit depth to consider. The bit depth is the number of digital bits of information used to encode each sample. In simple terms, bit depth measures “precision”. The higher the bit depth, the more accurately a signal can communicate the amplitude of the actual analog sound source. With the lowest possible bit depth, we only have two choices to measure the precision of sound: 0 for complete silence and 1 for full volume. The higher the bit depth, the more precision one has over their encoded audio. As an example: CD quality audio is a standard 16-bit, which gives 216 (or 65,536) volumes to choose from.

Bit depth is fixed for PCM encoding, but for lossy compression codecs (like MP3 and AAC) it is calculated during encoding and can vary from sample to sample.

... então, para resolver a questão, "Como determinar a profundidade de bits AAC?" Eu suponho que você teria que fazer isso em uma amostra por amostra.

    
por 31.01.2017 / 11:55