用于为实时流创建 hls 分辨率的同步和并发
Synchronization and concurrency for creating hls resolutions for Live Streaming
是否有一个命令可以将 mp4 视频 + aac 转码为多种分辨率的 HLS?
我有一个转换服务器,我想直播多个分辨率,我必须同时创建所有分辨率,这个过程必须是并发的。
我提出了这个问题,因为我使用 运行 在 4 cmd 中分别使用以下代码来执行此过程,例如同时 创建视频的 4 个分辨率 :
1- 720p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s hd720 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 720p/out.m3u8
2-480p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s hd480 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 480p/out.m3u8
3-360p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s nhd -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 360p/out.m3u8
4-200p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s cga -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 200p/out.m3u8
但是这样做有一些问题。
1- 每个分辨率的 .TS 部分不会与另一个分辨率部分同时创建(这个问题使得在切换分辨率时,玩家无法继续选择的分辨率,因为那个部分没有'尚未创建)。
2- 您有 运行 每个直播的线程。
这是我的答案,注意如果你想让每个分辨率的数字部分相同,你必须设置-hls_time。
ffmpeg -re -i 123.mp4
-c:a aac -c:v libx264 -s hd480 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 480p/out.m3u8
-c:a aac -c:v libx264 -s nhd -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 360p/out.m3u8
-c:a aac -c:v libx264 -s cga -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 200p/out.m3u8
是否有一个命令可以将 mp4 视频 + aac 转码为多种分辨率的 HLS?
我有一个转换服务器,我想直播多个分辨率,我必须同时创建所有分辨率,这个过程必须是并发的。
我提出了这个问题,因为我使用 运行 在 4 cmd 中分别使用以下代码来执行此过程,例如同时 创建视频的 4 个分辨率 :
1- 720p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s hd720 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 720p/out.m3u8
2-480p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s hd480 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 480p/out.m3u8
3-360p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s nhd -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 360p/out.m3u8
4-200p
ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s cga -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 200p/out.m3u8
但是这样做有一些问题。
1- 每个分辨率的 .TS 部分不会与另一个分辨率部分同时创建(这个问题使得在切换分辨率时,玩家无法继续选择的分辨率,因为那个部分没有'尚未创建)。
2- 您有 运行 每个直播的线程。
这是我的答案,注意如果你想让每个分辨率的数字部分相同,你必须设置-hls_time。
ffmpeg -re -i 123.mp4
-c:a aac -c:v libx264 -s hd480 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 480p/out.m3u8
-c:a aac -c:v libx264 -s nhd -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 360p/out.m3u8
-c:a aac -c:v libx264 -s cga -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 200p/out.m3u8