使用FFmpeg将MP4转换为多比特率的动态自适应HLS

3
我可以帮您翻译以下内容,涉及IT技术方面。我使用FFmpeg成功地将MP4视频转换为HLS格式,以便进行在线流媒体播放。
命令:
ffmpeg -i /var/www/html/file_conversion/heli.mp4 -map 0 -profile:v baseline -level 3.0 -s 640x360 -c:v libx264 -b:v 500k -c:a libfdk_aac -b:a 320k -hls_list_size 0 -start_number 0 -hls_init_time 0 -hls_time 2  -f hls /var/www/html/file_conversion/hlstest2/heli.m3u8

现在我正在尝试为动态自适应流式传输转换相同的视频,希望能够使用多个比特率。

您有任何想法吗?


1
可能是使用FFMPEG创建HLS变体的重复问题。 - undefined
1
参见:https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs - undefined
感谢您的回复,@slhck。我已经为高、中和低分辨率创建了3个不同的播放列表。问题是如何将它们合并成一个主播放列表,以便使用.m3u8进行自适应比特率流媒体。非常感谢您的帮助。 - undefined
从其他问题中阅读答案。那里解释了如何将播放列表合并为一个 .m3u8 文件。 - undefined
就像创建一个破折号清单一样,它可以处理不同比特率的动态流。 - undefined
谢谢,非常感谢!我会再仔细阅读一遍。 - undefined
1个回答

4
我有同样的疑问,并找到了这篇文章: https://dev.to/nodir_dev/transcode-video-source-to-hls-playlist-format-for-video-on-demand-vod-streaming-3h99 在制作转码文件后,只需创建一个*.m3u8文件,并包含以下内容:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360
360_out.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=750000,RESOLUTION=854x480
480_out.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720
720_out.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3500000,RESOLUTION=1920x1080
1080_out.m3u8

现在只需将此文件发送到流中。

我的HLS文件夹:

image_folder

content_of_master_file

我进行了两种分辨率的转码:1280x720和640x480

- 文章作者:Nodirbek Sharipov


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接