Создание MP4 видео готовых для HTTP стриминга

как конвертировать some.flv или some.avi или some.wmv с FFmpeg, чтобы быть уверенным, что это видео будет воспроизводиться и искать в JW Player?

14
задан abrahab
21.04.2023 2:18 Количество просмотров материала 2802
Распечатать страницу

4 ответа

Это ответ на последний комментарий вами @abrahab.

не нужно mp4box файл, чтобы иметь возможность псевдо поток через nginx. Модуль MP4 streaming заботится об этом независимо от расположения атомов moov (mp4box переносит атом moov в начало файла).


теперь для ошибки сервера 500, вы используете опцию" - frag " с mp4box? MP4 streaming module не может читать фрагментированные файлы MP4. Хорошее использование mp4box для потокового псевдо это чередования видео для лучшего поиска. Переносить атома Moov добавленное преимущество.

Я всегда так делаю mp4box файл в кодировке FFmpeg

MP4Box -add MyVideo.mp4 -isma Myvideo-box.mp4

это также будет чередовать файл MP4 в 500 миллисекундах кусков по умолчанию.

8
отвечен Vineet 2023-04-22 10:06

H. 264 в MP4

как правило, вы хотите создать x264 видео в контейнере MP4. Эта опция поддерживается практически любым устройством и браузером.

следующее должно быть достаточно. Убедитесь в том, чтобы заменить имя ввода и КРФ. Последний устанавливает качество, где нормальные значения находятся в диапазоне от 19 до 25-ниже означает лучшее качество, но и более высокий битрейт:

ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -movflags faststart output.mp4

вы также можете использовать ручной тормоз для кодирования, если вам нравится графический интерфейс.

С помощью faststart опции

теперь, что вам нужно сделать, это переместить контейнер MP4 в Moov atom к началу. Этот атом (по сути, единица данных в контейнере MP4) будет содержать важные метаданные о самих видео/аудио потоках. -movflags faststart должны сделать именно это.

если ваша версия FFmpeg не имеет этой опции, рассмотрите возможность обновления. Если вы не можете модернизировать, то вы можете достигнуть то же самое с любым из приведенных ниже инструментов:

  • QTIndexSwapper, Приложение Adobe AIR

  • MP4Box, бесплатно и с открытым исходным кодом, выполнив команду, подобную следующей, где вы можете изменить интервал (здесь, 500):

    mp4box -inter 500 input.mp4

  • qt-faststart в Python, который работает везде, где установлен Python.

    qtfaststart input.mp4

вот и все.

управление битрейтом / качеством

теперь, конечно, для потоковой передачи вы можете ограничить битрейт, чтобы оставаться в определенных пределах. Подробнее об этом можно прочитать в мой блог о методах контроля скорости.

например, добавив -maxrate 2M -bufsize 2M для опций кодирования вы ограничиваете кодировку 2 Мбит/с, что может быть достаточно для Видео 720p. Требуемый битрейт будет зависеть, конечно же, от сложности контента. Это займет некоторое проб и ошибок.

39
отвечен slhck 2023-04-22 12:23

вы можете просто конвертировать непотопляемые AVI или MP4, также без перекодирования все, делая это:

ffmpeg -i INPUT.mp4 -c copy -movflags faststart STREAMABLE_OUTPUT.mp4

нет необходимости перекодировать что-либо, потому что только атом moov должен быть перемещен.

3
отвечен user769852 2023-04-22 14:40

вы можете попробовать это с ffmpeg:

ffmpeg.exe -i "INPUT_FILE.AVI" -threads 2 -s 800x600 -r 25.00 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 2048k -async 1 -acodec pcm_s16le -ar 22050 -ac 1 -ab 128k -y "OUTPUT_FILE.mp4"
-1
отвечен Tomás Hernández 2023-04-22 16:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх