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

Я использую ffmpeg для создания сегментированного списка файлов для потоковой передачи их в приложение iOS. Список файлов генерируется отлично, но когда приходит время, чтобы воспроизвести их, видео должно быть загружено полностью, прежде чем начнется воспроизведение. Такое поведение похоже на iOS, сафари и VLC.

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

http://www.bytesizecreations.com/storie-test/hls.m3u8

вот мои команды ffmpeg для генерации сегментов из файла:

ffmpeg -i joined.ts -flags -global_header -vcodec copy -acodec copy -map 0 -f segment -segment_time 2 -segment_list hls.m3u8 -segment_list_size 999999 -segment_format mpegts out%03d.ts

вот вывод ffprobe в файле:

  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Input #0, mpegts, from 'joined.ts':
  Duration: 00:00:07.96, start: 1.441667, bitrate: 3899 kb/s
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720, 24 fps, 24 tbr, 90k tbn, 180k tbc
    Stream #0:1[0x101](und): Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 222 kb/s
5
задан Michael Gaylord
10.11.2022 4:23 Количество просмотров материала 3632
Распечатать страницу

1 ответ

для того, чтобы иметь высокую производительность потокового видео, должно быть множество различных видеопотоков. Другими словами, видео, закодированные с различными битрейтами и разрешениями, на которые ссылаются из файла списка воспроизведения (.m3u8)

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

Я использовал живой потоковой передачи по протоколу HTTP (ЗОЖ) стандарт, созданный Apple для создания адаптивного потока битрейта с 5 потоками (который я сгенерировал с помощью ffmpeg), и мое видео начинает воспроизводиться почти сразу.

промоушен: чтобы сделать это проще для разработчиков и другие, Я упаковал инфраструктуру, которую мы собрали для создания потоков HLS, с помощью iOS SDK, который вы можете проверить здесь:https://github.com/Storie/StorieCloudSDK

0
отвечен Michael Gaylord 2022-11-11 12:11

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

Ваш ответ

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

Имя

Похожие вопросы про тегам:

ffmpeg
hls
ios
video
video-streaming
Вверх