SoundConvert não funciona: GStreamer error when creating pipeline

Iniciado por eaxgrande, 20 de Dezembro de 2011, 08:30

tópico anterior - próximo tópico

eaxgrande

Amigos, bom dia!

Instalei um programa ontem chamado Mobile Media Converter.

Não sei se é isso, mas fui usar hoje cedo outro programa, o Conversor de Som (SoundConverter) pra converter de .wma para .mp3 e apareceu o seguinte:
CitarGStreamer error when creating pipeline | não foi possível ligar audioconvert 5 a lame2

Que será isso? :o

Abraços!
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

eaxgrande

#1
Pessoal,

Fiz uma pesquisa na internet e descobri que esse problema com o SoundConverter já aconteceu antes...

Mas não parece lá muito fácil de se resolver...

Normalmente eu ficaria interessado em resolver esse tipo de problema, mas estou sem tempo.

Assim, desinstalei o SoundConverter e passei a usar uma solução muuuuito mais simples:
Citar$ ffmpeg -i infile.wma outfile.mp3

De um jeito diferente, é verdade...

Mas, problema resolvido, por ora.

Abraços!
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

niquelnausea

testou o lame? em alguns testes que fiz a qualidade do lamen foi superiro ao do ffmpeg.

eaxgrande

Olá, niquelnausea

Ainda não sei o que é lame. Vou pesquisar sobre o assunto pra entender o que ele tem a ver com o sounconverter.

O que você recomenda? Devo reinstalar o soundconverter?

Abraço!
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

eaxgrande

Ah, não! Desculpa! Putz...

O lame é uma alternativa ao ffmpeg em terminal também?

Pesquisando ;D
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

eaxgrande

Boiei...

Pelo pouco que lí, o lame não parece um concorrente do ffmpeg.

Esta mais pra uma biblioteca pra decodificar .mp3 (algo a ser usado no funcionamento do SoundConverter?)

E agora?
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

niquelnausea

Citação de: eaxgrande online 20 de Dezembro de 2011, 17:24
Boiei...

Pelo pouco que lí, o lame não parece um concorrente do ffmpeg.

Esta mais pra uma biblioteca pra decodificar .mp3 (algo a ser usado no funcionamento do SoundConverter?)

E agora?
o lame é um codificador (LAME Ain't an MP3 Encoder), de uma olhada aqui e aqui. não sei se ele reconhece arquivos em wma, mas vale fazer o teste. algum tempo atraz copiei um script para me ajudar com meu acervo de musicas, veja se pode aproveitar

#!/bin/bash
#codificacao=$(zenity --entry --text "Digite o tipo de codificação:\ndigite -b para cbr (taxa de bits constante)\ndigite --abr para abr (taxa de bits media)\ndigite -V para vbr (taxa de bits variavel)\n"); echo $codificacao
#bitrate=$(zenity --entry --text "Digite o valor do bitratre:\ndigite 32, 64, 128, 160, 192, 224 ou 320 para cbr ou abr\ne de 0 a 9 para vbr, 0 melhor e 9 pior\n"); echo $bitrate
#freq=$(zenity --entry --text "Digite o valor da frequencia:\n32, 44.1 ou 48\npadrão 44.1\n"); echo $freq
for musica in *.{mp3,MP3}
do lame --abr 128 -q 0 -c -p -m a --resample 44.1 --strictly-enforce-ISO "$musica" "nova-$musica"
done

link para download http://db.tt/QotcXiKu

eaxgrande

he, he,

Citando a wikipédia
Citar(...)é um codificador (codec) de MPEG Audio Layer III (MP3) que pode ser usado com a maioria dos programas que convertem arquivos WAV em arquivos MP3 ou a partir de outros formatos ou suportes.

Quanto ao script:
Citar#!/bin/bash
#codificacao=$(zenity --entry --text "Digite o tipo de codificação:\ndigite -b para cbr (taxa de bits constante)\ndigite --abr para abr (taxa de bits media)\ndigite -V para vbr (taxa de bits variavel)\n"); echo $codificacao
#bitrate=$(zenity --entry --text "Digite o valor do bitratre:\ndigite 32, 64, 128, 160, 192, 224 ou 320 para cbr ou abr\ne de 0 a 9 para vbr, 0 melhor e 9 pior\n"); echo $bitrate
#freq=$(zenity --entry --text "Digite o valor da frequencia:\n32, 44.1 ou 48\npadrão 44.1\n"); echo $freq
for musica in *.{mp3,MP3}
do lame --abr 128 -q 0 -c -p -m a --resample 44.1 --strictly-enforce-ISO "$musica" "nova-$musica"
done

Fiz uma idéia aproximada de pra quê ele serve. Mas como se usa isso? Abre no terminal, preenche as variáveis e aponta a entrada-saida "$musica" "nova-$musica"? É assim mesmo?



Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

eaxgrande

#8
Estou tentando "deduzir" como se completa aqui:
Citar#!/bin/bash

$(zenity --entry --text "taxa de bits constante\n -b\n");echo $codificação

$(zenity --entry --text "192\n"); echo $bitrate

$(zenity --entry --text "48\n"); echo $freq

for musica in /home/eaxgrande/desktop/"música.mp3"

do lame --abr 128 -q 0 -c -p -m a --resample 44.1 --strictly-enforce-ISO

"$musica.wma" "$musica.mp3"

done

Essa é a idéia? Estou no caminho certo?
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

niquelnausea

o script foi só um exemplo, a única parte que interessa é essa: digite no terminal "for musica in *.{mp3,MP3} ; do lame --abr 128 -q 0 -c -p -m a --resample 44.1 --strictly-enforce-ISO "$musica" "nova-$musica" ; done" o resto é firula (para ser usado os menus deve ser retirado os # e criado um arquivo com o conteúdo e com a extensão .sh além de dar permissão de execução), mas vamos ao que interessa
http://www.vivaolinux.com.br/dica/Convertendo-wma-para-mp3
http://ocaoimh.ie/2005/08/16/how-to-convert-from-wma-to-mp3/

eaxgrande

Ah, entendi!

Nunca fiz nada que precisasse linkar um dos "paths" do sistema. Boa oportunidade!

Também vou testar esse Music Converter.

Posto os resultados aqui. Se der tudo certo, já posto como "solucionado"

Obrigado, niquelnausea. Valeu!

Grande abraço!
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

eaxgrande

#11
Olá, niquelnausea

Estou tentando aprender aqui...

Usei o seu script (renomeado em /usr/bin como"mp3convert") e o script disponibilizado aqui:http://www.vivaolinux.com.br/dica/Convertendo-wma-para-mp3 (renomeado em /usr/bin como "mp3convert2)

Gostei do que vi e agora entendi completamente o propósito deles.

No entanto ainda apresentam mensagens de erro que não compreendo.

O seu script não funcionou:
Citareaxgrande@Lucid64Bits:~/Área de Trabalho$ mp3convert
-b
128
44.1
Could not find "*.mp3".
Could not find "*.MP3".
eaxgrande@Lucid64Bits:~/Área de Trabalho$ mp3convert musica.teste.wma
-b
128
44.1
Could not find "*.mp3".
Could not find "*.MP3".
eaxgrande@Lucid64Bits:~/Área de Trabalho$

O script do site VivaoLinux funciona, só que não mantem o arquivo original - converte pra mp3 mesmo e apresenta as mensagens abaixo:

Citareaxgrande@Lucid64Bits:~/Área de Trabalho$ mp3convert2
mv: "musica.teste.wma" e "musica.teste.wma" são o mesmo arquivo
mv: "musica.teste.wma" e "musica.teste.wma" são o mesmo arquivo
-waveheader has been removed. Use -ao pcm:waveheader instead.
MPlayer SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
rm: não foi possível remover "audiodump.wav": Arquivo ou diretório não encontrado

eaxgrande@Lucid64Bits:~/Área de Trabalho$ mp3convert2 musica.teste.wma
mv: "musica.teste.wma" e "musica.teste.wma" são o mesmo arquivo
mv: "musica.teste.wma" e "musica.teste.wma" são o mesmo arquivo
-waveheader has been removed. Use -ao pcm:waveheader instead.
MPlayer SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
rm: não foi possível remover "audiodump.wav": Arquivo ou diretório não encontrado
eaxgrande@Lucid64Bits:~/Área de Trabalho$

Você sabe me explicar o porquê do não funcionamento de um e funcionamento "radical" do outro?

O que significam as mensagens de erro?

No seu script, seria alguma falha aqui?
Citar#!/bin/bash
#codificacao=$(zenity --entry --text "Digite o tipo de codificação:\ndigite -b para cbr (taxa de bits constante)\ndigite --abr para abr (taxa de bits media)\ndigite -V para vbr (taxa de bits variavel)\n"); echo $codificacao
#bitrate=$(zenity --entry --text "Digite o valor do bitratre:\ndigite 32, 64, 128, 160, 192, 224 ou 320 para cbr ou abr\ne de 0 a 9 para vbr, 0 melhor e 9 pior\n"); echo $bitrate
#freq=$(zenity --entry --text "Digite o valor da frequencia:\n32, 44.1 ou 48\npadrão 44.1\n"); echo $freq
for musica in *.{mp3,MP3}
do lame --abr 128 -q 0 -c -p -m a --resample 44.1 --strictly-enforce-ISO "$musica" "nova-$musica"
done

Por que as opções em janelas, para codificação, bitrate e freq , se no fim, os parâmetros estão engessados nisso?
Citar--abr 128 -q 0 -c -p -m a --resample 44.1

No outro script, seria algo aqui?
Citar#!/bin/bash

current_directory=$( pwd )
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
for i in *.[Ww][Mm][a]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -waveheader $i && lame -m s audiodump.wav -o $i; done
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
rm audiodump.wav

Existem referências inválidas?


Obrigado!
Ubuntu-Mate 16.04 Xenial
Lubuntu-LXQt 20.04 Focal

niquelnausea

vamos por partes:
o script que passei para você não funcionou porque ele busca por arquivos com a extensão .mp3 ou .MP3, repare que a sua esta em .wma (esse script foi somente para você ter uma ideia, não para usá-lo realmente)
for musica in *.{mp3,MP3}
para variável que chamei de musica nos formatos mp3 e MP3

eu defini as configurações para abr com 128k 44.1KHz, essas são as opções que uso como padrão, porem você poderia fixar as seguintes opções:
- -b para constante, -abr para médio e -V para fixo;
- um dos seguintes valores de bitrate para cbr ou abr 32, 64, 128, 160, 192, 224, 320 ou entre 0 e 9 para vbr;
- 32KHz, 44.1KHz ou 48KHz.

o resultado é esse: lame --abr 128 -q 0 -c -p -m a --resample 44.1 --strictly-enforce-ISO arquivo_em_mp3 arquivo_em_mp3_novo
explicando a sintaxe: lame é o conversor, --abr 128 a qualidade que desejo. -q 0 -c -p -m a opções diversas, --resample 44.1 para deixa-las com 44.1Khz. voce poderia usar simplesmente um lame -b 192 arquivo_antigo arquivo_novo mas teria que fazer musica por musica.
caso deseje usar uma janela para escolher as opções, basta usar este

#!/bin/bash
codificacao=$(zenity --entry --text "Digite o tipo de codificação:\ndigite -b para cbr (taxa de bits constante)\ndigite --abr para abr (taxa de bits media)\ndigite -V para vbr (taxa de bits variavel)\n"); echo $codificacao
bitrate=$(zenity --entry --text "Digite o valor do bitratre:\ndigite 32, 64, 128, 160, 192, 224 ou 320 para cbr ou abr\ne de 0 a 9 para vbr, 0 melhor e 9 pior\n"); echo $bitrate
freq=$(zenity --entry --text "Digite o valor da frequencia:\n32, 44.1 ou 48\npadrão 44.1\n"); echo $freq
for musica in *.{mp3,MP3}
do lame $codificacao $bitrate -q 0 -c -p -m a --resample $freq --strictly-enforce-ISO "$musica" "nova-$musica"
done



quanto ao script do vivaolinux, repare que primeiramente ele converte as letras da extensão para minuscula (.wma)

current_directory=$( pwd )
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
for i in *.[Ww][Mm][a]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done


depois converte para wav e depois para mp3

for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -waveheader $i && lame -m s audiodump.wav -o $i; done


essa parte não entendi muito bem

for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done


e essa manda remover o arquivo audiodump.wav

rm audiodump.wav


____________________________________________________________________

nos dois scripts não é necessário digitar no terminal "script nome da musica", apenas o script, já que os próprios scripts vão buscar pelos arquivos recursivamente. a parte que realmente importa em ambos são essas

lame --abr 128 -q 0 -c -p -m a --resample 44.1 --strictly-enforce-ISO musica_antiga musica_nova


mplayer -vo null -vc dummy -af resample=44100 -ao pcm -waveheader musica


acho que me prolonguei um pouco, leia e diga se ficou com alguma duvida.