GStreamer - RTSP в HLS / mp4 - PullRequest
       45

GStreamer - RTSP в HLS / mp4

1 голос
/ 14 марта 2019

Я пытаюсь сохранить поток RTSP h.264 в файлах HLS mp4:

gst-launch-1.0 rtspsrc location="rtsp://....." ! rtph264depay ! h264parse ! matroskamux ! hlssink max-files=0 playlist-length=0 location="/home/user/ch%05d.mp4" playlist-location="/home/user/list.m3u8" target-duration=15

В результате - есть только один файл ch00000.mp4, который включает весь видеопоток (3 минуты вместо 15 секунд в"target-duration").

Если я сохраняю в файлы mpegtsmux / ts - все в порядке для одной и той же команды.

Что не так?Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

HLS состоит из сегментов транспортного потока MPEG. Итак, во-первых: matroskamux здесь не имеет смысла. Вам понадобится mpegtsmux вместо этого. Чтобы указать, что это на самом деле, вы обычно называете файлы с расширением .ts. Он все еще может работать для GStreamer, так как это просто имя файла - проигрыватели могут отказаться от его воспроизведения, поскольку ожидают другого типа формата файла.

* 1006 Е.Г. *

gst-launch-1.0 rtspsrc location="rtsp://....." ! rtph264depay ! h264parse ! \
mpegtsmux ! hlssink max-files=0 playlist-length=0 location="/home/user/ch%05d.ts" \
playlist-location="/home/user/list.m3u8" target-duration=15
1 голос
/ 18 марта 2019

Вам нужно использовать gstreamer? В противном случае я считаю, что эта команда ffmpeg делает то, что вы хотите.

ffmpeg -i rtsp://... -c copy -hls_list_size 10 -hls_segment_type fmp4 output.m3u8
...