gpt4 book ai didi

linux - HTTP 直播 : The Linux nightmare

转载 作者:IT王子 更新时间:2023-10-29 00:17:00 26 4
gpt4 key购买 nike

我正在 iPhone 上开发音乐 VOD 应用程序,由于 Apple 的指导方针,我必须运行 HTTP 实时流式传输才能被 AppStore 接受。但是,由于 Apple 不关心地球上 98% 的服务器,他们不会为基于 Linux 的系统提供如此神奇的 HTTP Live Streaming Tools。从这一点开始,噩梦开始了。

我的目标很简单:获取一个 MP3,将其分段并生成一个简单的 .m3u8 索引文件。我在谷歌上搜索了“HTTP Live Streaming Linux”和“太棒了!很多人已经这样做了”!

首先,我访问了the (so famous) post by Carson McDonald .结果:svn segmentate.c 很旧,有很多问题,编译起来简直就是一场噩梦(这个世界上没有人能准确知道他们使用的是什么版本的 ffmpeg!)。然后我遇到了the Carson's git repo , 但太糟糕了,有很多烦人的 ruby​​ 东西,而且 live_segmenter.c 不能处理 mp3 文件。

然后我更深入地搜索。我找到了 this stackoverflow topic ,而这正是我想要做的。所以我听从了 juuni 的建议使用 this script (httpsegmenter) .结果:无法编译任何东西,2 天的工作,最后我设法编译它(ffmpeg 8.1 w/httpsegmenter rev17)。不,这不是一个好的脚本,它确实需要 mp3 文件,但播放器无法读取生成的 ts 文件和索引文件。

然后帖子的作者krisbulman 提出了一个解决方案,甚至还自己给了一个补丁版本的m3u8-segmenter (git repo)。我测试它:不编译,什么也不做。所以我从 johnf 那里拿了原始版本 https://github.com/johnf/m3u8-segmenter .我设法编译并奇迹般地工作(不是真的)。我使用了这个命令行(ffmpeg 0.8.1):

ffmpeg -er 4 -i music.mp3 -f mpegts -acodec libmp3lame -ar 44100 -ab 128k -vn - | m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://test.com/

此脚本编码我的 mp3 文件(需要 4 秒,太长),并将其传递给 m3u8-segmenter 以将其分割为 10 秒的 .TS 文件。

我在我的 mac 上用 Apple 的 mediastreamvalidator 测试了这个流,它说没问题。所以我把它播放成 quicktime,但是每个 .TS 文件之间有大约 0.2 秒的空白!!

这是我的情况,这是一场噩梦,我无法通过 HLS 协议(protocol)获得简单的 mp3 流。是否有一个简单的工作解决方案来分割 mp3 ?为什么我不能像Apple的mediafilesegmenter那样直接将mp3文件分割成多个mp3文件?

最佳答案

使用 libmp3lame 的 libfaac insteam 消除了 0.2 秒的中断。

关于linux - HTTP 直播 : The Linux nightmare,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com