Как я могу перекодировать видео 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 оставлена ​​в качестве упражнения для читателя.

Другие вопросы по тегам