好的,所以我有一个周末项目的想法,我想直接将flv / mp4stream转码为mp3格式。
我怎样才能轻松地通过在CentOS服务器上的PHP / Apache? (希望不是像FFMPEG CPU密集型)任何想法的赞赏!
🙂
首先, ffmpeg
是这个的首选工具。 这是CPU密集型的,因为这是video或audio编码的本质。
您可以简单地从音轨中抓取stream(假设原始mp3audio在stream中)并保存。 我以前用这个bash
代码片断*.flv
文件的目录:
#!/bin/bash for i in *.flv; do ffmpeg -i "$i" -acodec copy `basename $i .flv`-`date +%H%M%S%N`.mp3; done
如果stream本身不是mp3格式,则需要重新编码。 或者你也许想要一个不同的比特率等等。这个任务肯定会消耗比前者更多的CPU:
ffmpeg -i "$file" -f mp3 -vn -acodec libmp3lame -ab 192 `basename $file .flv`-`date +%H%M%S%N`.mp3;
编辑:限制为一个核心: taskset 1 ffmpeg <rest of args>
– taskset
是Debian系统上util-linux
软件包的一部分。 您可能还想要重新设置该过程,将其优先级值设置为正范围内的某个值(声音向后,但较低nice
值=较多的cpu时间)。 和往常一样, man taskset
, man renice
, man nice
。
这就是你如何从shell执行ffmpeg的操作 – 在PHP中实现作为读者的练习。