Расширение FFmpeg HLS для одного файла и формат байтовых диапазонов - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь взять 5-минутный видеофайл и создать одиночный файл HLS плейлист с помощью этой команды

ffmpeg -i video.mp4 -codec copy -bsf:v h264_mp4toannexb -hls_time 4 -hls_flags single_file -hls_list_size 0 video.m3u8

Создает плейлиствот так:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.338667,
#EXT-X-BYTERANGE:535424@0
video.ts
#EXTINF:5.338667,
#EXT-X-BYTERANGE:316592@535424
video.ts
#EXTINF:5.338667,
#EXT-X-BYTERANGE:285384@852016
video.ts
#EXT-X-ENDLIST

То, что я хотел:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.338667,
#EXT-X-BYTERANGE:535424@0
video-0-535424.txt
#EXTINF:5.338667,
#EXT-X-BYTERANGE:316592@535424
video-535424-316592.txt
#EXTINF:5.338667,
#EXT-X-BYTERANGE:285384@852016
video-852016-285384.txt
#EXT-X-ENDLIST

Или:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.338667,
#EXT-X-BYTERANGE:535424@0
video.txt#0-535424
#EXTINF:5.338667,
#EXT-X-BYTERANGE:316592@535424
video.txt#535424-316592
#EXTINF:5.338667,
#EXT-X-BYTERANGE:285384@852016
video.txt#852016-285384
#EXT-X-ENDLIST

Я все еще хочу преобразовать в один .ts/ или что-нибудь еще , просто хотите отредактировать, как это записать в video.m3u8 .Это возможно только с ffmpeg?Если так, как это можно сделать?Или есть какой-нибудь модуль js / nodejs, который может переписать video.m3u8 в нечто вроде video.txt#range-here

1 Ответ

0 голосов
/ 21 мая 2019

Итак, вы можете проанализировать файл .m3u8 с помощью m3u8-parser

Вам необходимо проанализировать файл .m3u8, извлечь каждую строку и проверить, является ли эта строкасодержит .ts.Если он содержит, замените его на .txt.Это хак, который я сделал в своем проекте.

...