GStreamer - RTSP到HLS / mp4

问题描述 投票:1回答:2

我尝试将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秒)。

如果我保存到mpegtsmux / ts文件 - 对于相同的命令都可以。

怎么了?提前致谢。

gstreamer mp4 rtsp hls
2个回答
2
投票

HLS由MPEG传输流段组成。首先:matroskamux在这里没有意义。你需要mpegtsmux。为了表明它到底是什么,通常会使用.ts扩展名来命名文件。它可能仍然适用于GStreamer,因为它只是一个文件名 - 玩家可能拒绝播放它,因为期望另一种文件格式。

EG

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
投票

你必须使用gstreamer吗?否则我相信这个ffmpeg命令能做你想要的。

ffmpeg -i rtsp://... -c copy -hls_list_size 10 -hls_segment_type fmp4 output.m3u8
© www.soinside.com 2019 - 2024. All rights reserved.