Как я могу перекодировать видео FLV прямо в mp3 на CentOS?
Итак, у меня есть идея для проекта выходного дня, где я хочу транскодировать потоки flv/mp4 напрямую в формат mp3.
Как я могу легко сделать это через PHP/Apache на сервере CentOS? (надеюсь, не такой интенсивный процессор, как FFMPEG) Любая идея приветствуется!
:)
1 ответ
Во-первых, 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 оставлена в качестве упражнения для читателя.