Хорошо, у меня есть идея для проекта на выходные, где я хочу перекодировать потоки flv / mp4 непосредственно в формат mp3.
Как я могу легко сделать это через PHP / Apache на сервере CentOS? (надеюсь, не так интенсивно, как FFMPEG) Любые идеи приветствуются!
:)
Во-первых, ffmpeg
лучший инструмент для этого. Это интенсивно загружает процессор, потому что такова природа кодирования видео или аудио.
Вы можете просто скопировать поток (при условии, что в потоке есть исходный mp3-звук) из дорожки и сохранить его. Я использовал это bash
фрагмент до для каталогов *.flv
файлы:
#!/bin/bash
for i in *.flv;
do ffmpeg -i "$i" -acodec copy `basename $i .flv`-`date +%H%M%S%N`.mp3;
done
Если поток изначально не в формате mp3, вам необходимо перекодировать. Или, возможно, вам нужен другой битрейт и т. Д. Эта задача определенно потребляет больше ресурсов ЦП, чем предыдущая:
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
является частью util-linux
пакет в системах Debian. Вы также можете захотеть renice
процесс, устанавливая значение приоритета на что-то в положительном диапазоне (звучит наоборот, но ниже nice
значение = больше времени ЦП). Как всегда, man taskset
, man renice
, man nice
.
Вот как вы делаете то, что хотите делать с ffmpeg из оболочки - реализация в PHP оставлена в качестве упражнения для читателя.