Назад | Перейти на главную страницу

Как я могу перекодировать FLV-видео прямо в mp3 на CentOS?

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