Зачем моему mp4 (h.264) постоянно нужен mp4box?

4059
user45326

Всякий раз, когда я конвертирую видео в mp4 с кодеком h.264, оно не воспроизводится сразу на Windows или iPad. Он хорошо воспроизводится, когда я конвертирую видео с помощью mp4box . Я использую следующую команду для преобразования.

mp4box -hint video.mp4 

Мне нравится знать, что я добавляю к видео с mp4box ..

Как это работает?

0

2 ответа на вопрос

3
slhck

Обратите внимание, что mp4boxне кодирует видео, оно используется только для повторной упаковки существующего контента. Поэтому я предполагаю, что у вас уже есть закодированное видео, а затем используйте mp4boxдля добавления hintопции. Хотя этот рабочий процесс на самом деле не имеет смысла для меня, позвольте мне объяснить, что hintозначает:

Эта -hintопция, вероятно, вызывается для введения в видеофайл так называемой дорожки подсказок .

Что такое подсказка? Ну, ваш видеофайл сам по себе представляет собой последовательность битов, не более того, а в некоторых приложениях это очень неэффективно. Возьмите пример сервера, который транслирует видео. Он должен инкапсулировать видео в пакеты, которые отправляются по сети. Но как сервер узнает, какие части видео поместить в какой пакет? Если сервер не знает структуру потока битов, он не сможет правильно его пакетировать.

Вот где вступает в игру трек с подсказками. Он создается для того, чтобы потоковый сервер мог правильно упаковать видео в пакеты RTP. По сути, такая подсказка гласит: «Поместите часть XY видео в пакет AB ».


Все это говорит о том, что истинный h.264 не должен иметь дорожки подсказок для потоковой передачи, поскольку h.264 имеет сетевой уровень абстракции, который предоставляет потоковому серверу всю необходимую информацию для пакетирования видео. Подсказка необходима только для видео MPEG-4 Visual (например, с кодировкой DivX или XviD).

Проверьте, выводит ли ваш кодировщик действительный mp4файл - какой из них вы используете на самом деле?

// Спасибо за вашу очень подробную информацию. Я пользуюсь ручником. user45326 12 лет назад 0
@ user12077 Это интересно. Таким образом, даже если вы используете соответствующие настройки для iPad, файл, сгенерированный Handbrake, не открывается? slhck 12 лет назад 0
@ user12077: Если вы транслируете это видео, тогда эта подсказка важна, но я не думаю, что так и должно быть, если к ней просто обращаются как к локальному файлу. Как именно вы получаете доступ к файлу для воспроизведения? Если вы используете потоковую передачу, воспроизводится ли она нормально, если вы воспроизводите ее на локальном компьютере? Spectre 12 лет назад 0
@Spectre // извините за задержку с ответом; Я фактически передаю этот файл по сети. user45326 12 лет назад 0
1
Spectre

Какую программу вы используете для создания / кодирования видео h264 на месте? Может случиться так, что кодер выводит необработанный файл h264, этот необработанный поток обычно должен быть помещен в формат контейнера, такой как mkv или mp4, вместе с аудиопотоком, прежде чем его можно будет воспроизвести.

Проверьте кодировщик h264, чтобы увидеть, автоматически ли он помещает закодированное видео в контейнер mp4 для вас или имеет ли он определенный профиль / настройки для вашего устройства. если это произойдет, но все еще не воспроизводится, это может быть просто ошибкой, и в этом случае вам придется придерживаться использования mp4box вручную.

// Я использую HandBrake. user45326 12 лет назад 0
Хм, я только что понял, что, возможно, я неправильно понял ваш вопрос, вы говорите, что он «не играет сразу», означает ли это, что он вообще не воспроизводится или просто занимает больше времени, чем обычно, чтобы начать играть? Spectre 12 лет назад 0
// для начала требуется больше времени, чем обычно. user45326 12 лет назад 0

Похожие вопросы