- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在 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/
好吧,我用 Nightmare 来做一些测试任务,对于基于电子和phatomjs的代码来说是如此的好。 现在,我有一个问题,我该如何通过 Nightmare 上传图像文件? 好吧,我找到了一个名为ni
我找不到这方面的任何信息,主要是因为一旦我在同一句话上输入带有“Nightmare ”和“IE”的google搜索,您就会知道... 有没有办法像在IE兼容模式下一样运行nightmare.js? 最
我试图从网站中提取数据,我想在 10 分钟后循环查看数据是否已更改。我认为将我的功能打包在模块中是一个好主意,但现在我坚持将我当前的 Nightmare 实例从登录模块转移到数据模块。 开始.js v
我很难过要在Travis CI上运行它。它会间歇性地工作,但 Nightmare 通常会因以下错误而失败: nightmare:log did-get-response-details [{},f
使用nightmarejs如何在文件输入中输入文件并进行确认? 它用于附件的自动化(例如电子邮件)。我的意思是输入文件是这样的: 最佳答案 我所知道的使用Nightmare进行上传的唯一方法是使用de
我想抓取并通过页面中的每个herf获取html,然后输出到csv。现在我第一次使用 Nightmare 。所以我对未定义的段落有疑问。 var Nightmare = require('nightma
var Nightmare = require('nightmare'); var nightmare = Nightmare({ show: true }); var fs = require('
我目前正在开发一个程序来自动化某个网站上的任务(简化代码如下)。我很好地登录,然后等待页面加载,但是wait函数永远不会结束。我尝试使用wait(200),但是评估函数返回一个空数组。我100%确信网
我尝试在F12时单击包含这些详细信息的按钮 Show all results for 'lundhags' 我已经复制了xpath并且有这样的代码=>I.click('//*[@id="9"]');
我在javascript中使用Nightmare创建网络抓取工具,但是评估功能未返回正确的信息。似乎它能够返回原始类型(int,字符串等),但不能返回“querySelectorAll”中的元素列表。
我正在尝试NightmareJS进行一些我想完成的自动化操作。我遇到的一个问题是, Nightmare/Electron 无法解析adidas网站,但是它可以解析并访问任何其他网页。 This is
我想使用 Nightmare JS 通过检查状态代码 200 来确定页面是否正在加载。我查看了 goto 选项,但无法弄清楚。大家有什么想法吗? var Nightmare = require('ni
我刚刚开始使用 Nightmare 。我在我的网页上使用它用于测试目的。 我有以下用户界面。 menu tab1 | tab2 | tab3 ......(dynamically generated
如何使用 nightmare-iframe 插件访问具有随机生成名称的 iframe? 我试过了 var name = yield nightmare .goto(defaultUrl) .c
如何在服务器上通过pm2或类似的东西运行nightmarejs,因为 Nightmare 使用电子,而电子现在需要图形,我正在使用xvfb-run npm start ,但是这个 sol° 需要我通过
下面的代码片段是来自 https://github.com/segmentio/nightmare 的示例 const Nightmare = require('nightmare') const n
我知道在任何环境中处理日期都可能会非常令人困惑,但我正处于一场噩梦中,这个函数本应该是一项微不足道的工作。我想以不同的方式操作某些日期,但出现错误或错误的结果。 下面我将报告一个非常简单的例子来测试执
我有以下代码: for(var i = 0; i { return true; }) } 我正在 Electron 应用程序中使用它。然而,这会执行异步,我会立
我正在尝试使用 github.com/segmentio/nightmare 自动化 2 个站点 例子: 我想继续访问 site_1(临时电子邮件服务)并获得电子邮件。 然后转到 site_2 并填写
我正在尝试使用 Nightmare 抓取网页,但想等待 #someelem 出现,前提是它确实存在。否则,我希望 Nightmare 继续前进。如何使用 .wait() 完成此操作? 我不能使用 .w
我是一名优秀的程序员,十分优秀!