атрибут кодека видеотекста html5

Я пытаюсь указать конкретный видео / аудио кодек в теге видео, используя

 

но не могу найти правильную инструкцию кодеков для воспроизведения видео, я загрузил видеоанализ и вижу, что это avc1 и может видеть, что звуковая карта.40.2, но может работать с остальной частью кодека, что делает 4d401e означает в приведенном выше?

Приветствие Тоби

Параметр codecs указан RFC 6381 . В частности, см. Раздел 3.3 для значения значений avc1 и mp4a .

В случае avc1.4D401E avc1 указывает видео H.264, за которым следует точка и три двухзначных шестнадцатеричных числа, определенные стандартом H.264 :

  1. profile_idc
  2. байт, содержащий флагов constraint_set (в настоящее время constraint_set0_flag через constraint_set5_flag и reserved_zero_2bits )
  3. level_idc

Некоторые примеры:

  • avc1.42E01E : H.264 Ограниченный базовый уровень профиля 3
  • avc1.4D401E : Основной профиль H.264 3
  • avc1.64001E : Высокий профиль H.264 3

Это также второй, третий и четвертый байты набора параметров последовательности и блок конфигурации AVC в файле MP4. Вы можете сбросить эти байты с помощью такой программы, как mp4file : mp4file --dump movie.mp4 . Найдите avcC (AVC Configuration) и шестнадцатеричные значения для AVCProfileIndication , AVCLevelIndication и AVCLevelIndication .

Что касается mp4a.40.2 , mp4a указывает mp4a MPEG-4. За ним следует точка и шестнадцатеричное ObjectTypeIndication ( objectTypeId в mp4file output), которое можно просмотреть на сайте регистрации MPEG4 . Если это шестнадцатеричное значение равно 40 (ISO / IEC 14496-3 Audio), за ним следует еще одна точка и тип аудио объекта в десятичном формате. Они перечислены в стандарте ISO / IEC 14496-3 и в Википедии и соответствуют первым 5 битам DecoderSpecificInfo ( decSpecificInfo ) (если только эти биты не равны 31, и в этом случае добавьте 32 к следующим 6 битам). mp4a.40.2 обозначает аудио AAC LC, что обычно используется с видео H.264 HTML5.

Например, codecs="avc1.42E01E, mp4a.40.2" будут корректны для фильма ниже:

 $ mp4file --dump movie.mp4 ... type avcC (moov.trak.mdia.minf.stbl.stsd.avc1.avcC) ◀━━ avc1 configurationVersion = 1 (0x01) AVCProfileIndication = 66 (0x42) ◀━━ 42 profile_compatibility = 224 (0xe0) ◀━━ E0 AVCLevelIndication = 30 (0x1e) ◀━━ 1E ... type esds (moov.trak.mdia.minf.stbl.stsd.mp4a.esds) ◀━━ mp4a version = 0 (0x00) flags = 0 (0x000000) ESID = 2 (0x0002) streamDependenceFlag = 0 (0x0) <1 bits> URLFlag = 0 (0x0) <1 bits> OCRstreamFlag = 0 (0x0) <1 bits> streamPriority = 0 (0x00) <5 bits> decConfigDescr objectTypeId = 64 (0x40) ◀━━ 40 streamType = 5 (0x05) <6 bits> upStream = 0 (0x0) <1 bits> reserved = 1 (0x1) <1 bits> bufferSizeDB = 0 (0x000000) <24 bits> maxBitrate = 78267 (0x000131bb) avgBitrate = 78267 (0x000131bb) decSpecificInfo info = <2 bytes> 11 90 |..| ◀━━ 2 (first 5 bits in decimal) ... 

mark4o дает самое лучшее объяснение, которое я видел о том, как расшифровать информацию о кодеках. Отлично.

Одна деталь, которая может потребовать немного больше деталей, – это разбить конкретный тип аудиообъекта из значения decSpecificInfo. Поиск части «mp4a.40» очень ясен, раздел «.2» может быть немного сложным.

Мы начинаем с последовательности шестнадцатиричных значений одного байта: «11 90» в примере mark4o или «12 08» в моем случае. Оба они составляют в общей сложности 2 байта … может быть больше значений, но только первые 2 вопроса для поиска типа объекта (и обычно только первый байт). Мы ищем отдельные биты, чтобы преобразовать каждую цифру в шестнадцатеричные значения в двоичные; должно быть 4 двоичных цифры для каждой шестнадцатеричной цифры. Возьмите первые 5 двоичных цифр – 4 из первой шестнадцатеричной цифры, 1 из следующей – и преобразуйте это двоичное значение в десятичное. Вот шаги:

 Example 1 (11 90): Starting value: 11 90 Separate the hex digits: 1 1 9 0 Convert each digit to binary: 0001 0001 1001 0000 Take the first 5 bits: 0001 0 Combine into binary value: 00010 Convert to decimal: 2 Example 2 (12 08): Starting value: 12 08 Separate the hex digits: 1 2 0 8 Convert each digit to binary: 0001 0010 0000 1000 Take the first 5 bits: 0001 0 Combine into binary value: 00010 Convert to decimal: 2 

Они представляют собой один и тот же тип объекта, несмотря на разные значения decSpecificInfo.

Вы можете использовать инструмент MP4Box для поиска строк кодеков в формате RFC6381. Все же вы должны присоединиться к ним с запятыми.

Вы можете использовать эту команду:

MP4Box -info big.mp4 2>&1 | grep RFC6381 | awk '{print $4}' | paste -sd , -

  • Мультимедийное видео и аудио FFMPEG (из другого видео) - проблема с отображением
  • Использование VideoView для streamовой или прогрессивной загрузки видео
  • Как я могу автовоспроизвести видео с помощью нового стиля встраиваемого кода для Youtube?
  • html5: отображение видео внутри canvasа
  • Что является самым легким проигрывателем FLV для встраивания видео на веб-сайт?
  • Приложение Android Webview не позволит проигрывателю проигрывать весь экран
  • Отображение изображения Qt jpg
  • Как остановить воспроизведение видео на YouTube в Android-браузере?
  • ANDROID: Как загрузить видеофайл на SD-карту?
  • Потоковое видео с Android-камеры на сервер
  • Сохранить видео, снятое с веб-камеры, используя Flash
  • Interesting Posts

    Создание базы данных MySQL с Java

    Firefox: сочетание клавиш для «Выделить все» в панели поиска

    Отсутствие подсветки синтаксиса в GVIM для Windows с помощью _vimrc

    Scala underscore – ОШИБКА: отсутствует тип параметра для расширенной функции

    производительность целых чисел без знака и знака

    Динамически изменять значение в файле app.config

    Почему Wi-Fi WPA2-PSK не может быть подключен?

    Какой тип сокета intel более надежен в будущем?

    Хостинг нашего собственного календаря для совместного использования в команде?

    Лучшая практика передачи многих аргументов методу?

    Как создать изменяемый размер прямоугольника с пользовательскими событиями касания на Android?

    x86_64 ASM – максимальные байты для команды?

    Как сделать JAR-файл, содержащий файлы DLL?

    Почему я не могу подключиться к удаленному рабочему столу на моем компьютере под управлением Windows 10?

    Как применить правило пользовательской сортировки к WPF DataGrid?

    Давайте будем гением компьютера.