#ffmpeg #http-live-streaming
#ffmpeg #http-прямая трансляция
Вопрос:
Я создаю локальное приложение для просмотра локальных видео из браузера, из-за того, что некоторые видео загружались более 1 часа, они начали отставать, и использование HLS вместо .mp4 решило эту проблему.
В приложении, которое я создаю, пользователь часто пропускает на 10-40 секунд вперед. Мой вопрос: должен ли я использовать -hls_time 60
или было бы лучше просто использовать -hls_time 10
Текущий код: ffmpeg -i "input.mp4" -profile:v baseline -level 3.0 -start_number 0 -hls_time 10 -hls_playlist_type vod -f hls "inputindex.m3u8"
Ответ №1:
Более длинные сегменты подразумевают больший размер сегмента, поэтому после поиска проигрывателю может потребоваться больше времени для возобновления работы в зависимости от доступной пропускной способности и от того, был ли уже получен требуемый сегмент или нет.
Если приложение предназначено для мобильных устройств, где ожидается изменение условий сети, вам также необходимо рассмотреть адаптивную потоковую передачу. В этом случае при более длинных сегментах вы увидите меньшее переключение качества, но рискуете остановить воспроизведение. Более подробную статью вы можете найти здесь.
Несколько замечаний о вашей ffmpeg
команде:
- не устанавливайте
level
, поскольку оно уже вычисляется автоматически, если не указано, и вы рискуете ошибиться и испортить проверку совместимости устройств. - сегменты вырезаются только на ключевых кадрах, и их длительность может превышать указанную
hls_time
. Если вам нужна точная длительность сегмента, вам нужно вставить ключевой кадр с нужным интервалом.
Комментарии:
1. Действительно ли это имеет значение, смотрите первое предложение: я создаю локальное приложение для просмотра локальных видео из браузера,
2. @Гьян это местные в начале, потом кто-то думает, что это хорошая идея, затем она пойдет в производство и затем я должен справиться с этим на стороне игрока