Я использую mediafilesegmenter
для создания плейлистов HLS для фильмов mp4. Моя команда выглядит следующим образом,#EXTINF - поле в apple hls playlist имеет десятичную длину - генерируется mediafilesegmenter
mediafilesegmenter movieName.mp4 -I -f /Library/WebServer/Documents/vod/movieName/ -t 10 -l movie.log -k /Library/WebServer/Documents/vod/movieName/keys/ -K http://KEYSERVER/keys/ -key-rotation-period 10 -encrypt-rotate-iv-mbytes=1024 -J random
С помощью этой команды я получаю список воспроизведения генерируется в порядке, но длительность в #EXTINF:
десятичная помещаются. Я проверил проект HLS, он говорит:
Тег EXTINF указывает продолжительность сегмента мультимедиа. Он применяет только к URI носителя, который следует за ним. Каждому сегменту медиаресурсов UUST MUST предшествует тег EXTINF. Его формат:
#EXTINF:<duration>,<title>
>
«длительность» представляет собой целое число или число с плавающей точкой в десятичной системе позиционной системы счисления, которая определяет длительность сегмента медиа в секундах. Длительности, которые сообщаются как целые числа, ДОЛЖНЫ быть округлены до ближайшего целого. Длительности должны быть целыми числами, если версия протокол файла списка воспроизведения меньше 3.
Мой вопрос Как я могу сделать #EXTINF
до целого числа? Я использовал опцию -t 10
и -t 15
и несколько номеров, но все-таки мой плейлист имеет
#EXTINF:14.792,
т.д.
Кто-нибудь может указать мне, какие изменения в команде должны быть сделаны так, чтобы я получить целое число на основе #EXTINF
?
Моя mediasegmenter версия mediafilesegmenter: Beta Version 1.1(111116)
Я использую Darwin Kernel Version 10.8.0 with x86_64
макинтош.
Есть ли способ, чтобы определить, какую версию протокола используются в mediafilesegmenter? У меня недостаточно денег для доступа к странице руководства. Но если вы можете установить его на версию 2, он должен выводить целые числа только на длительность. Но проще всего просто изменить сгенерированный плейлист с простым регулярным выражением в скрипте. – vipw
Спасибо за ответ, я получил то, что работает с reg-ex, вот рег-ex, я использовал 'perl -pi -e 's/# EXTINF: (\ d {1,2}) \. (. *),/# EXTINF: 10,/g 'prog_index.m3u8 ' – cb24
Вы заменяете все длительности на 10? Это не кажется правильным и может иметь последствия для клиентов, когда они пытаются использовать панель поиска. Если клиент пытается найти то, что, по его мнению, составляет 100 секунд, он пропустит 10 сегментов, которые могут быть или не быть близко к 100 секундам. Я бы рекомендовал обновить код до округления значения. В идеале вы можете сохранить общее количество дробных частей, чтобы избежать кумулятивной ошибки округления. – vipw