Servidor para converter WAV para WMA

13. Re: Servidor para converter WAV para WMA

Reinaldo Gomes
reinaldogomes

(usa CentOS)

Enviado em 02/07/2016 - 21:46h

Como você achou esse codec?

Eu não consegui usar não. Quando eu listo os Codecs, não tem esse wma9 (tem um parecido que é o wmapro, mas ele é só DECODER, e não ENCODER). Se mesmo assim eu usar o "-acodec wma9", dá erro, olha só:

[root@localhost libav-11.7]# ffmpeg -codecs | grep wma
ffmpeg version N-80901-gfebc862 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfreetype --enable-libmp3lame --enable-libvorbis
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 47.100 / 6. 47.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
D.A..S wmalossless Windows Media Audio Lossless
D.A.L. wmapro Windows Media Audio 9 Professional
DEA.L. wmav1 Windows Media Audio 1
DEA.L. wmav2 Windows Media Audio 2
D.A.L. wmavoice Windows Media Audio Voice
[root@localhost libav-11.7]# ffmpeg -i /tmp/recordings/20160615205920-1158-088-314184-1123856117-00-640046.wav -acodec wma9 /tmp/recordings/20160615205920-1158-088-314184-1123856117-00-640046.wma
ffmpeg version N-80901-gfebc862 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfreetype --enable-libmp3lame --enable-libvorbis
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 47.100 / 6. 47.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from '/tmp/recordings/20160615205920-1158-088-314184-1123856117-00-640046.wav':
Duration: 04:45:57.89, bitrate: 64 kb/s
Stream #0:0: Audio: pcm_alaw ([6][0][0][0] / 0x0006), 8000 Hz, 1 channels, s16, 64 kb/s
Unknown encoder 'wma9'



  


14. Re: Servidor para converter WAV para WMA

Reinaldo Gomes
reinaldogomes

(usa CentOS)

Enviado em 02/07/2016 - 22:04h

Descobri duas coisas. Uma que no site da Microsoft fala sobre esse Windows Media Audio 9 Voice, que é específico pra gravações de voz, com baixa taxa de bits:

https://msdn.microsoft.com/en-us/library/windows/desktop/gg153556(v=vs.85).aspx#windows_media_audio_...

E descobri que esse wmavoice está presente no ffmpeg, mas somente com a função de DECODER. Você conseguiu mesmo executar esse comando, colocando ele como ENCODER (output)??


15. Re: Servidor para converter WAV para WMA

felipe silva
lipman

(usa Debian)

Enviado em 03/07/2016 - 08:25h

desculpe, eu não testei, deveria ter testado antes!


16. Re: Servidor para converter WAV para WMA

Reinaldo Gomes
reinaldogomes

(usa CentOS)

Enviado em 03/07/2016 - 12:44h

Pois é, não tem suporte mesmo ao wmavoice como encoder... eu testei o libspeex, e ele tem quaaase a mesma qualidade do wmavoice, mas ainda tem alguns poréns...

Continuo procurando alguma alternativa pra encoder específico pra voz (não música), seja no ffmpeg ou em outro conversor que tenha CLI pra linux :/


17. Re: Servidor para converter WAV para WMA

Reinaldo Gomes
reinaldogomes

(usa CentOS)

Enviado em 04/07/2016 - 14:00h

A melhor alternativa que eu achei, foi o encoder lispeex, gravado no formato OGG.
Não fica 100% como o wmavoice, mas é muito próximo. Agora é só dar uma regulada final, e partir pra automatização.


18. Converter para MP3 RE: SERVIDOR PARA CONVERTER WAV PARA WMA

Magno BRasil
magno_braz

(usa CentOS)

Enviado em 14/10/2016 - 17:51h

Aqui eu coloquei um script para converter para MP3 usando o lame

https://www.vivaolinux.com.br/contribuir/scripts/download.php?arquivo=wav_to_mp3.sh&codigo=6523


#!/bin/bash

######################################################################
#
#convert_wav_mp3.sh - Script para converter arquivos WAV em MP3 #
#
#Autor - Magno Brasil - magno@magnobr.info
#Criação - 11/10/2016 - v.1.0
#
#----------------------------------------------------------------------
#
#Esse programa é utilizado para conversão dos arquivos WAV em MP3,
#utilizando parametros do sistema ou parametros do usuario.
#
#Esse script deve ser executado 00:01 e irá converter todas as ligações realizadas
#no dia anterior
#
#OBS - Para utilizar o script de forma manual comentar as linhas 43,,44,46
#e inserir os dados nas linhas 53 e 56 e descomenta-las.
#
#
#
#Agradeço ao Eduardo Rebelo Lopes pelo script criado em 10/01/2013
#que pode ser acessado no endereço -
#
#https://www.vivaolinux.com.br/artigo/Processamento-Paralelo-em-Shell-Script-Conversao-de-Arquivos-WAV-para-MP3/
#
########################################################################

datainicial=`date +%s`


######### Verificicando se o LAME já está instalado

lame_instalado=`whereis lame`;

if [ "$lame_instalado" != "lame:" ]; then

echo -e "PPSS já instalado !!!\n\n"

else

echo -e "Instalando o PPSS !!!\n\n"
wget wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ppss/ppss-2.97.tgz
rpm -ivh lame-3.98.4-1.el6.rf.x86_64.rpm
rm -f lame-3.98.4-1.el6.rf.x86_64.rpm
echo -e "LAME instalado com sucesso!!!\n\n"
fi


######### Verificicando se o PPSS já está instalado

ppss_instalado=`whereis ppss`;

if [ "$ppss_instalado" != "ppss:" ]; then

echo -e "PPSS já instalado !!!\n\n"

else

echo -e "Instalando o LAME !!!\n\n"
wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/lame-3.98.4-1.el6.rf.x86_...
tar xvzf ppss-2.50.tgz -C /usr/local/bin
chown root:root /usr/local/bin/ppss && chmod a+rx /usr/local/bin/ppss
echo -e "PPSS instalado com sucesso!!!\n\n"
fi




############################################################
#Conversão em multi-thread ou não -> 0 - sim / 1 - não
CORE=0

############################################################
#diretorio raiz das gravações
diretorio_raiz=/var/spool/asterisk/monitor

#Para executar as conversões de forma manual
#comente as linhas abaixo e coloque a data
#nos campos descritos

############################################################
#Para executar de formar automatica, não comentar

dia_atual=`date +"%d"`;
mes_ano_atual=`date +"%m-%Y"`;

let dia_atual=$dia_atual-1; #comando para a data do dia anterior


##################################################################
##################################################################
#Para executar de forma manual, descomentar e setar as datas abaixo

#Colocar o dia_atual no formato 1-31 sem o zero inicial
#dia_atual=3

#Colocar o mes_ano_atual no formato mm-YYYY, não esquecer o -
#mes_ano_atual=10-2016

##################################################################


data_atual=$dia_atual-$mes_ano_atual

diretorio_final=$diretorio_raiz/$mes_ano_atual/$data_atual

cd $diretorio_final

tamanho_diretorio=`du -hs .`


#Criando lista com os arquivos .wav
ls | grep wav > /tmp/lista_arq.txt

path_arquivo=$mes_ano_atual/$data_atual/

contador=`ls | wc | cut -d " " -f3-7`;


######################################################################################


echo -e "#Total de arquivos a serem convertidos $contador\n\n" >> /tmp/lista_arq.txt


echo -e "############################################################\n"
echo -e "Iniciando Conversão de $contador Arquivos ----- \n\n"
echo -e "############################################################\n"


cd /usr/local/bin

#Comando para realizar a conversão dos arquivos - O LAME deve estar instalado.
#O PPSS também deve estar instalado pra multi processamento

./ppss -d $diretorio_final -c 'BASENAME=`basename "$ITEM" .wav`; lame --quiet --preset insane "$ITEM" "$OUTPUT_DIR/$BASENAME.mp3"' -o $diretorio_final


cd $diretorio_final


echo -e "############################################################\n"
echo -e "Conversões realizadas com sucesso $contador --------- \n\n"
echo -e "############################################################\n"


######################################################################################

echo -e "############################################################\n"
echo -e "Removendo arquivos wav --------- \n\n"
echo -e "############################################################\n"

rm -f *.wav;


######################################################################################

tamanho_diretorio_atual=`du -hs .`;

mv /tmp/lista_arq.txt $diretorio_final/bkp
mv /tmp/atualiza.sql $diretorio_final/bkp
mv /tmp/roolback.sql $diretorio_final/bkp
mv /tmp/script_roolback.sh $diretorio_final/bkp


#######################################################################################
##################
# As linhas abaixo são para pegar os arquivos de log do PPSS e colocar na pasta da conversão

mkdir $diretorio_final/logs

mv /usr/local/bin/ppss_dir/* $diretorio_final/logs

##########################################################################

echo "####################################################################"
echo "####################################################################"
echo "## ##"
echo "## ##"
echo "## TODAS AS CONVERSÕES FORAM REALIZADAS COM SUCESSO!!! ##"
echo "## ##"
echo "## O ESPAÇO UTILIZADO ERA DE $tamanho_diretorio"
echo "## O ESPAÇO DO DIRETORIO ATUAL E DE $tamanho_diretorio_atual"
echo "## FORAM CONVERTIDOS $contador ARQUIVOS ##"
echo "## ##"
echo "## ##"
echo "####################################################################"


datafinal=`date +%s`
soma=`expr $datafinal - $datainicial`
resultado=`expr 10800 + $soma`
tempo=`date -d @$resultado +%H:%M:%S`
echo " Tempo gasto: $tempo "



19. Re: Servidor para converter WAV para WMA

Reinaldo Gomes
reinaldogomes

(usa CentOS)

Enviado em 14/10/2016 - 19:08h

Fiquei uns meses com esses projeto parado, e retomei esses dias. Consegui avançar muito nesse assunto, e tô desenvolvendo um script em Perl para a inteligência da automatização.

O meu maior desafio é encontrar um encoder que seja próximo do wmavoice em qualidade, e compatível com WMP. Eu acho inacreditável que todos os encoder mais modernos disponíveis (como libspeex, opus, etc) não se comparam à qualidade do wmavoice, que é tido como tecnologia morta e obsoleta, precisando de pelo menos o dobro do bitrate pra terem uma qualidade parecida.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts