Командная строка 'hls_segment_size' создает файлы TS с ошибками сегмента - PullRequest
2 голосов
/ 02 апреля 2019

Я конвертирую простое видео mp4 в hls, но мне нужно, чтобы сегменты были примерно определенного размера

Я исследовал и обнаружил:

-hls_segment_size 17000000

17000000 байт (~ 17 МБ)

При этом создаются файлы TS с приблизительными размерами (не обязательно должны быть точного размера)

ffmpeg.exe -i "in.mp4" -vcodec copy -acodec aac -hls_list_size 0 -hls_segment_size 17000000 -f hls "out.m3u8"

В файле m3u8 создается '# EXT-X-BYTERANGE', который являетсятак, как я хочу

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:8.400000,
#EXT-X-BYTERANGE:1662108@0
SampleVideo_1280x720_30mb0.ts
#EXTINF:4.560000,
#EXT-X-BYTERANGE:383896@0
SampleVideo_1280x720_30mb1.ts
#EXTINF:3.120000,
#EXT-X-BYTERANGE:408712@383896
SampleVideo_1280x720_30mb1.ts
#EXTINF:5.640000,
#EXT-X-BYTERANGE:1161840@0
SampleVideo_1280x720_30mb2.ts
#EXTINF:1.880000,
#EXT-X-BYTERANGE:230864@0
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.160000,
#EXT-X-BYTERANGE:330880@230864
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.080000,
#EXT-X-BYTERANGE:489928@0
SampleVideo_1280x720_30mb4.ts
#EXTINF:4.400000,
#EXT-X-BYTERANGE:1564348@489928
SampleVideo_1280x720_30mb4.ts
...

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

Если не использовать '-hls_segment_size', будут функционировать файлы TS, и без BYTERANGE в файле m3u8

Однако размер файла TS будетбыть в соответствии с определенными секундами

В настоящее время я пытаюсь получить файл ts, размер которого близок к размеру, установленному между 15 МБ и 20 МБ, и иметь BYTERANGE в файле m3u8.

Есть ли у кого-нибудьесть идеи?

вот проблема, которую я пытаюсь описать:

http://phantsc.rf.gd/AAA/Bbb.html

точно во второй 7 видео происходит «блокировка», это происходитпри переходе от одного сегмента к другому

...