【发布时间】:2021-08-04 08:46:36
【问题描述】:
我有 5 个摄像头,每个摄像头都有一个 RTSP 流。我正在将该 rtsp 流转换为 HLS。这是我正在使用的命令:
ffmpeg -rtsp_transport tcp -i rtsp://*:*@*:*/ -f hls -codec copy -strftime 1 -strftime_mkdir 1 -hls_time 10 -hls_list_size 360 -hls_segment_filename %Y%m%d/%H/%M%S.ts playlist.m3u8
该命令为 2 个摄像头提供正确的输出。其余的,播放列表文件的持续时间总是不正确(应该是 10 秒):
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000000,
videos/0/2/20210513/13/2632.ts
#EXTINF:5.000000,
videos/0/2/20210513/13/2642.ts
#EXTINF:5.000000,
由于某种原因,时长总是写为播放列表中实际视频时长的一半。
当我将 hls_time 设置为 5 秒时,这些摄像机的播放列表显示持续时间为 2.5 秒,即使 '.ts' 为 5 秒长。
可能出了什么问题?
【问题讨论】:
-
可能与trac.ffmpeg.org/ticket/7798 以及最终PTS 的计算方式有关。也许完整的输出日志会有所帮助。
-
@aergistal 这是日志:gist.github.com/mntolia/94a3cc7a6241a8702f5b63706fda0359
-
首先要尝试的是最近的 ffmpeg,因为 4.2 已经过时了。 Download(git 版本)并输入
~/bin或/usr/local/bin或关注FFmpeg Ubuntu compile/install guide。
标签: ffmpeg http-live-streaming