Como posso transcodificar um vídeo FLV diretamente para mp3 no CentOS?

1

Ok, eu tenho essa ideia para um projeto de fim de semana no qual quero transcodificar flv / mp4 diretamente para o formato mp3.

Como posso fazer isso facilmente via PHP / Apache em um servidor CentOS? (esperamos que não seja tão intensivo em CPU quanto o FFMPEG) Qualquer ideia é apreciada!

:)

    
por BoRo 05.11.2010 / 22:45

1 resposta

2

Primeiramente, ffmpeg é a ferramenta preferida para isso. É um uso intensivo da CPU porque é a natureza da codificação de vídeo ou áudio.

Você pode simplesmente extrair o fluxo (assumindo que o áudio mp3 original está no fluxo) da trilha e salvá-lo. Eu usei este bash snippet antes para diretórios de *.flv files:

#!/bin/bash
for i in *.flv; 
    do ffmpeg -i "$i" -acodec copy 'basename $i .flv'-'date +%H%M%S%N'.mp3; 
done

Se o fluxo não estiver originalmente no formato mp3, você precisará recodificá-lo. Ou talvez você queira uma taxa de bits diferente, etc. Esta tarefa definitivamente consumirá mais CPU do que a anterior:

ffmpeg -i "$file" -f mp3 -vn -acodec libmp3lame -ab 192 'basename $file .flv'-'date +%H%M%S%N'.mp3; 


edit: para limitar a um núcleo: taskset 1 ffmpeg <rest of args> - taskset é parte do pacote util-linux em sistemas Debian. Você também pode querer renice do processo, definindo seu valor de prioridade para algo no intervalo positivo (sons para trás, mas menor nice value = mais tempo cpu). Como sempre, man taskset , man renice , man nice .

Isto é como você faz o que você quer fazer com o ffmpeg a partir do shell - a implementação no PHP é deixada como um exercício para o leitor.

    
por 05.11.2010 / 23:03