Gstreamer HLSSink Pipeline отображает черные рамки в Safari - PullRequest
0 голосов
/ 25 апреля 2018

Этот get-launch-1.0 конвейер командной строки : gst-launch-1.0 videotestsrc num-buffers=680 ! x264enc ! mpegtsmux ! hlssink location=junk2.%05d.ts playlist-location=junk2.m3u8

Этот сервер : python -m SimpleHTTPServer 8000

Этот локальный URLв Mac OS X Safari : http://localhost:8000/junk2.m3u8

Появляется для воспроизведения в локальном браузере Safari, но отображает черные рамки.Почему?

Примечание: вывод консоли Python выглядит довольно счастливым, поэтому все пути правильны:

$ python -m SimpleHTTPServer 8000
Serving HTTP on 0.0.0.0 port 8000 ...
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.m3u8 HTTP/1.1" 200 -
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.m3u8 HTTP/1.1" 200 -
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.00001.ts HTTP/1.1" 200 -
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.00000.ts HTTP/1.1" 200 -

Примечание: также пробовал различные варианты плагина hlssink без изменений в поведении:

  • target-duration=2
  • max-files=0
  • playlist-length=0

Другие игроки : правильно воспроизводится и отображаетсяв VLC: VLC Playback

1 Ответ

0 голосов
/ 25 апреля 2018

Ваш x264enc выбирает неправильный профиль.Если вы не скажете ему, что использовать, и в вашем случае с videotestsrc он выберет цветовой профиль 4:4:4 вместо 4:2:0.Многие декодеры не поддерживают это.

Скажите videotestsrc, что вместо этого следует указать формат 4:2:0:

gst-launch-1.0 videotestsrc num-buffers=680 ! video/x-raw, format=I420 ! x264enc ! mpegtsmux ! hlssink location=junk2.%05d.ts playlist-location=junk2.m3u8
...