Windows использует ffmpeg для преобразования MP4 в m3u8 с использованием подробных параметров, добавления водяных знаков и сжатия видео.

Оглавление

фон:

1. Что такое m3u8:

2. Зачем использовать m3u8:

3. Установите ffmpeg:

1. Разархивируйте сразу после загрузки:

2. Настройте переменные среды:

4. Начните конвертировать m3u8:

5. Добавьте водяной знак и сжатие к видео:

1. Добавьте изображение водяного знака в видео

2. Размер выходного видео

3. Начальный файл выходного файла

4. Минимальный и максимальный размер выходного файла (повлияет на качество видео)


фон:

        Недавно компания приобрела зарубежные курсы для продвижения в колледжи и университеты, поэтому необходимо разработать платформу по запросу, но перед лицом сложных групп клиентов необходимо решить проблемы медицинского осмотра пользователей и анти- пиявка, поэтому мы выбрали m3u8.

1. Что такое m3u8:

        Видеоформат M3U8 также является разновидностью M3U, но его формат кодирования — формат UTF-8. M3U кодируется набором символов Latin-1. Формат M3U8 характеризуется информацией о каталоге или файле.

2. Зачем использовать m3u8:

        В связи с растущим спросом клиентов на воспроизведение на мобильном терминале наше программное обеспечение для транскодирования начало выводить файлы формата mp4.После тестирования мы обнаружили, что степень сжатия превосходного программного обеспечения, сжатого mp4 и flv, почти одинакова, поэтому мы унифицировали вывод Файлы mp4, обработанные нашим программным обеспечением, могут реализовать воспроизведение методом перетаскивания без буферизации (ускоренное воспроизведение вперед), а также решить проблему некоторых видеофайлов со звуком, но без изображения, что заслужило похвалу клиентов.

        С увеличением количества клиентов недостатки воспроизведения файлов mp4 становятся все более и более заметными, в основном в двух аспектах: во-первых, когда продолжительность видео относительно велика, ключевые элементы кадра mp4 часто очень велики, и это занимает много времени. время для загрузки, чтобы начать играть.Если скорость сети не очень хорошая, буферизация и загрузка займет более 20 секунд, а клиент уже нетерпелив. Во-вторых, когда пользователь открывает видео для воспроизведения, браузер будет продолжать запрашивать загрузку файла mp4 до тех пор, пока загрузка не будет завершена.Даже если пользователь приостановит воспроизведение видео, браузер продолжит загрузку.Если размер видеофайла составляет 500 МБ. , он запросит у сервера загрузку файла размером 500M, если он 1G, он будет непрерывно загружать 1G, что приведет к большим потерям и нагрузке на жесткий диск сервера и широкополосную связь.

        Итак, мы обращаемся к файлам воспроизведения больших видеосистем веб-сайтов, таких как Youku Tudou, и обнаруживаем, что их видеофайлы воспроизводятся сегментами, то есть большой видеофайл делится на N сегментов в соответствии с определенным размером или продолжительностью. Преимущество Скорость загрузки открытия видео быстрая, и его можно транслировать за секунды Еще одно преимущество в том, что когда видео воспроизводит N-й сегмент, браузер загрузит сегмент N+1, а сегмент N+2 не будет загружается, что значительно снижает нагрузку на жесткий диск сервера и широкополосный доступ, но знайте, что высокая стоимость широкополосного доступа является самой большой нагрузкой на видео-сайты. Этот метод обработки видеофайлов был хорошо принят большим количеством клиентов.

        Но вскоре мы обнаружили очень серьезную проблему.Видео списка сегментов xml также беспомощно на IOS.Чтобы воспроизвести видео на устройстве IOS, файл mp4 должен быть зарезервирован для воспроизведения на устройстве IOS. Так появился плейлист m3u8.

        m3u8 — это новый формат воспроизведения, разработанный Apple. Этот формат воспроизведения поддерживает основные браузеры устройств Windows, Android и iOS, представленные в настоящее время на рынке. Одни и те же видеофайлы можно воспроизводить во флэш-среде, а также в HTML5. среда без флэш-памяти Play, его преимущества не ограничиваются этим, он может реализовать автоматическое переключение различных скоростей передачи данных при разных скоростях сети, автоматически переключать видео высокой четкости, когда скорость сети хорошая, и автоматически воспроизводить файлы низкой четкости, когда скорость сети низкая, а также может реализовывать потоковое шифрование (сам видеофайл зашифрован), сегментированную загрузку и воспроизведение, воспроизведение с перетаскиванием в любой момент времени, случайную вставку рекламы видеофайла и т. д., поэтому последняя версия облачная видеосистема транскодирования использует только m3u8 в качестве единственного формата воспроизведения и отказывается от вывода в другом формате.

3. Установите ffmpeg:

Сначала загрузите файл ffmpeg, доступный для Windows (я расскажу о других главах в среде Linux)

URL-адрес: https://github.com/BtbN/FFmpeg-Builds/releases .

1. Разархивируйте сразу после загрузки:

После завершения загрузки распакуйте сжатый пакет.После завершения файл ffmpeg.exe в каталоге bin будет использоваться при последующем запуске программы.

2. Настройте переменные среды:

Добавьте путь bin в папке ffmpeg к пути системной переменной Windows.

После завершения настройки проверьте успешность настройки

Введите ffmpeg -version в CMD, если появится следующая информация, конфигурация прошла успешно

4. Начните конвертировать m3u8:

Подготовьте файл mp4

открыть командную строку

Выполните следующую команду в CMD в соответствии с расположением файла

ffmpeg -i E:\demo\demo.MP4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls E:\demo\demo.m3u8

Если появится следующее приглашение, преобразование выполнено успешно.

Давайте посмотрим на преобразование файлов в папке m3u8.

Файл включает файл m3u8 и несколько файлов ts.

Открываем файл m3u8

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

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


5. Добавьте водяной знак и сжатие к видео:

ffmpeg -i E:\videos\video.mp4 -i E:\videos\logo.png -filter_complex overlay -profile:v baseline -level 3.0 -s 1024x1080 -start_number 0 -hls_time 0.5 -b:v 125k -bufsize 150k - hls_list_size 0 -f hls E:\videos\video\video.m3u8

1. Добавьте изображение водяного знака в видео

-i E:\videos\logo.png Добавить изображение водяного знака к видео -filter_complex позиция оверлея находится в верхнем левом углу видео

Вверху слева: -filter_complex overlay
Внизу слева: -filter_complex overlay=0:Hh

Верхний правый угол: -filter_complex overlay=Ww

Внизу справа: -filter_complex overlay=Ww:Hh

2. Размер выходного видео

-с 1024x1080

3. Начальный файл выходного файла

-начальный_номер 0

4. Минимальный и максимальный размер выходного файла (повлияет на качество видео)

-b:v 125k -размер буфера 150k

Ссылка: Сводка общих команд FFmpeg_ffmpeg -i input.ts

Ссылка: https://www.jianshu.com/p/e3f6c3705033
Ссылка: https://www.jianshu.com/p/36475d6f4558
 


Если эта статья оказалась для вас полезной, я буду очень рад вам помочь.

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

рекомендация

отblog.csdn.net/chenthe1/article/details/131008271