Gstreamer и hlssink для отображения через http не работает - PullRequest
0 голосов
/ 12 февраля 2020

Я использовал приведенную ниже команду, используя gstreamer. Я вижу сгенерированные файлы в root, но VL C вылетает, когда я пытаюсь открыть playlist.m3u8. Основная цель - прямой эфир с веб-камеры в браузере firefox.

gst-launch-1.0 ksvideosrc ! decodebin ! videoconvert ! openh264enc ! mpegtsmux ! hlssink playlist-root=localhost location=C:/inetpub/wwwroot/hlssink.%05d.ts playlist-location=C:/inetpub/wwwroot/playlist.m3u8

также тег видео не показывает потоковое видео.

<video width="352" height="198" controls>
    <source src="http://localhost/playlist.m3u8" type="application/x-mpegURL">
</video>

Я не могу понять, что я делаю здесь неправильно; любая помощь будет оценена.

1 Ответ

0 голосов
/ 13 февраля 2020

Чтобы сделать это воспроизводимым в VL C (запущенном на той же машине, где находится ваш IIS-сервер), вам нужно изменить параметр hlssink playlist-root. Это должно быть

... ! hlssink playlist-root=http://localhost ...

. Это правильно установит префиксную часть URL-адреса сегментов TS в списке воспроизведения HLS

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:88
#EXT-X-TARGETDURATION:15

#EXTINF:15.026812553405762,
http://localhost/hlssink.00087.ts
#EXTINF:15.006274223327637,
http://localhost/hlssink.00088.ts
#EXTINF:15.011569976806641,
http://localhost/hlssink.00089.ts
#EXTINF:15.020917892456055,
http://localhost/hlssink.00090.ts
#EXTINF:15.016651153564453,
http://localhost/hlssink.00091.ts

, и игрок VL C будет знать точный URL (s) для загрузки сегментов из.

К сожалению, ваш HLS не воспроизводится (большинством) браузеров , поскольку реализация тега <video> не поддерживает транспортный поток MPEG (MPEG TS) медиа-контейнер, в который упакованы ваши сегменты.

Чтобы решить эту проблему , вы можете использовать, например, hls. js библиотека, которая, помимо прочего, будет преобразует сегменты MPEGTS в контейнер MP4, поддерживаемый стандартным тегом HTML5 <video>.

...