ffprobe повідомляє про правильну глибину бітів, але лише тоді, коли має бути трохи глибина для повідомлення , інакше правильно повідомляє, що "бітова глибина" не застосовується (N / A).
У звіті FFmpeg про поле даних "bits_per_raw_sample" та за відповідь Каранаса "бітова глибина" є неправильним для кодованого AAC аудіо.
Якщо ви намагаєтеся проаналізувати файл даних, ви, можливо, захочете grep -e
за допомогою "codec_name" визначити, які потоки (відео, аудіо, текст) "bits_per_raw_sample" повідомляють. Це дозволяє легко дізнатися, чи повідомляється про стан бітової глибини відноситься до відеокодеку чи аудіокодеку:
$ ffprobe -show_streams <input_file.mp4> | grep -e codec_name -e bits_per_raw_sample
... приклад результату звіту про файл відео та аудіо даних:
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
Вам може сподобатися ця стаття " Демостифіковане аудіокодування "
Бітова глибина
Поряд зі швидкістю вибірки, також слід враховувати глибину біту. Бітова глибина - це кількість цифрових біт інформації, яка використовується для кодування кожного зразка. Простіше кажучи, бітова глибина вимірює "точність". Чим більша глибина біту, тим точніше сигнал може передавати амплітуду фактичного аналогового джерела звуку. З найменшою можливою глибиною біту у нас є лише два варіанти вимірювання точності звуку: 0 для повної тиші та 1 для повної гучності. Чим більша глибина біту, тим більше точність має над кодованим звуком. Як приклад: аудіо якості CD - це стандартний 16-розрядний, який дає 216 (або 65536) томів на вибір.
Бітова глибина фіксується для кодування PCM, але для кодеків стиснення втрат (як MP3 та AAC) вона обчислюється під час кодування і може змінюватись від вибірки до вибірки.
... так, щоб вирішити питання "Як визначити бітну глибину AAC?" Я припускаю, що вам доведеться робити це на вибірці за зразком.