Nginx ffmpeg:将单个实时视频流编码为不同分辨率并保持同步

Nginx ffmpeg:将单个实时视频流编码为不同分辨率并保持同步,nginx,ffmpeg,http-live-streaming,rtmp,transcoding,Nginx,Ffmpeg,Http Live Streaming,Rtmp,Transcoding,我使用NGINX作为一个简单的HLS实时视频服务器。将rtmp流发送到服务器,将其转换为三种不同的分辨率,以便使用HLS向具有不同带宽限制的用户交付 我遇到的问题是,当我将1080p 30fps输入转码到480p和720p,然后用HLS将其分割成块时,两个转码输出的段与复制的全分辨率流不同步 以下是我现在正在做的事情: 源rtmp流上的exec FFmpeg: exec ffmpeg -i rtmp://127.0.0.1:1935/live/$name -c:v libx264 -c

我使用NGINX作为一个简单的HLS实时视频服务器。将rtmp流发送到服务器,将其转换为三种不同的分辨率,以便使用HLS向具有不同带宽限制的用户交付

我遇到的问题是,当我将1080p 30fps输入转码到480p和720p,然后用HLS将其分割成块时,两个转码输出的段与复制的全分辨率流不同步

以下是我现在正在做的事情: 源rtmp流上的exec FFmpeg:

exec ffmpeg -i rtmp://127.0.0.1:1935/live/$name
     -c:v libx264 -c:a aac -b:a 128k -vf "scale=-2:720" -vsync 1 -copyts -start_at_zero -sws_flags lanczos -r 30 -g 30 -keyint_min 30 -force_key_frames "expr:gte(t,n_forced*1)" -tune zerolatency -preset ultrafast -crf 28 -maxrate 2096k -bufsize 4192k -threads 16 -f flv rtmp://localhost:1935/show/$name_720
     -c:v libx264 -c:a aac -b:a 96k -vf "scale=-2:480" -vsync 1 -copyts -start_at_zero -sws_flags lanczos -r 30 -g 30 -keyint_min 30 -force_key_frames "expr:gte(t,n_forced*1)" -tune zerolatency -preset ultrafast -crf 28 -maxrate 1200k -bufsize 2400k -threads 16 -f flv rtmp://localhost:1935/show/$name_480
     -c copy -vsync 1 -f flv rtmp://localhost:1935/show/$name_src;
然后获取结果并对其进行HLS细分

hls on;
hls_path /var/www/live-adapt;
hls_nested on;
hls_fragment 1;
hls_playlist_length 30;

hls_fragment_naming system;

hls_variant _480 BANDWIDTH=1200000; # Medium bitrate, SD resolution
hls_variant _720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution
hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution
这是可行的,但流不同步会导致最终用户需要(或选择)在流之间切换时出现问题。 例如:


我希望得到任何建议。

你好!你找到解决这个问题的办法了吗?这里有完全相同的问题,我的HLS播放列表不同步,当更改质量时,video.js崩溃并在~1分钟后恢复。
Sequence number 510 was not everywhere in sync:
PTS 510.7 for https://fqdn/live-adapt/c5d7ddb2-5562-4bd3-9e06-df9fa6e8ff06_480/1589521352937.ts
PTS 510.7 for https://fqdn/live-adapt/c5d7ddb2-5562-4bd3-9e06-df9fa6e8ff06_720/1589521352933.ts
PTS 511.699 for https://fqdn/live-adapt/c5d7ddb2-5562-4bd3-9e06-df9fa6e8ff06_src/1589521353752.ts