FFMPEG 没有在 HLS 的输出播放列表文件中写入正确的视频持续时间
FFMPEG is not writing the correct video duration in the output playlist file for HLS
我有 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 秒时,尽管 '.ts' 的长度为 5 秒,但相应摄像机的播放列表显示持续时间为 2.5 秒。
有什么问题吗?
我使用的是旧版本的 FFMPEG。 Ubuntu 存储库中的默认版本是 4.2。为了获得最新版本,我使用了这个 link:
https://johnvansickle.com/ffmpeg/
感谢@llogan
我有 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 秒时,尽管 '.ts' 的长度为 5 秒,但相应摄像机的播放列表显示持续时间为 2.5 秒。
有什么问题吗?
我使用的是旧版本的 FFMPEG。 Ubuntu 存储库中的默认版本是 4.2。为了获得最新版本,我使用了这个 link: https://johnvansickle.com/ffmpeg/
感谢@llogan