Questão Transcodifique para aac no Ubuntu 14.04 usando vlc


Eu estou tentando transmitir um fluxo de dvb no VLC, mas transcodificando o formato de áudio para aac, no entanto, ele não consegue encontrar o codificador. Como faço para instalá-lo?

VLC media player 2.1.4 Rincewind (revision 2.1.4-0-g2a072be)                    
[0x2535b58] main interface error: no suitable interface module                  
[0x2470118] main libvlc error: interface "globalhotkeys,none" initialization failed                                                                             
[0x2535b58] dbus interface error: Failed to connect to the D-Bus session daemon:
Unable to autolaunch a dbus-daemon without a $DISPLAY for X11                  
[0x2535b58] main interface error: no suitable interface module                  
[0x2470118] main libvlc error: interface "dbus,none" initialization failed      
[0x2470118] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. 
[0x2535b58] qt4 interface error: Could not connect to X server 
[0x2535b58] skins2 interface error: cannot initialize OSFactory 
[0x2535b58] [cli] lua interface: Listening on host "*console". 
VLC media player 2.1.4 Rincewind
Command Line Interface initialized. Type `help' for help.
> [0x7f00c800bcf8] dtv access error: 514000 Hz carrier frequency is too low. 
[0x7f00c800bcf8] dtv access: Assuming 514000000 Hz frequency instead. 
[0x7f00c800bcf8] dtv access error: cannot enumerate frontend systems: Invalid argument 
[0x7f00cc001138] avcodec encoder error: cannot open encoder 
[0x7f00cc001138] main encoder error: Streaming / Transcoding failed 
[0x7f00cc001138] main encoder error: VLC could not open the encoder. 
[0x7f00c80097c8] stream_out_transcode stream out error: cannot find audio encoder (module:any fourcc:mp4a). Take a look few lines earlier to see possible reason. 
[0x7f00c80097c8] stream_out_transcode stream out error: cannot create audio chain 
[0x7f00c80a5438] main decoder error: cannot create packetizer output (mpga) 
[0x7f00c80105b8] ts demux error: libdvbpsi (misc PSI): Bad CRC_32 table 0x73 !!!  

Editar para adicionar o comando que estou executando

cvlc --ttl 12 --ts-es-id-pid --program=8261 dvb:// --dvb-adapter=3 \
--dvb-frequency=514000 --dvb-bandwidth=8 --sout #transcode{width=720,vcodec=h264,
venc=x264{aud,profile=baseline,level=30,keyint=30,ref=1},
acodec=mp4a}:std{access=livehttp{seglen=10,delsegs=true,
numsegs=10,index=/web/main/streaming/mystream.m3u8,
index-url=http://192.168.1.2/streaming/mystream-########.ts},
mux=ts{use-key-frames},dst=/web/main/streaming/mystream-########.ts}'

O comando é transmitir um adaptador DVB através da HLS, transcodificando-o para um formato aceito pelo cliente. O comando funciona, mas produzirá arquivos ts que não possuem áudio devido ao codificador ausente. Se eu passar o codificador para "mp3" eu recebo um arquivo com áudio MP3, mas obviamente não o que eu quero.


2
2017-08-21 16:35


origem


Qual comando você correu? - Volker Siegel
Adicionado à pergunta. - foxy82


Respostas:


Você pode realmente estar faltando alguns codecs, porque eles são separados para alguns pacotes extras no Ubuntu.

Existem duas variantes conflitantes dos pacotes, um ith -extra no nome.

Além disso, há relatos de que a instalação dos pacotes pode atrapalhar o gerenciamento de pacotes; Pelo menos eu tive que resolver os conflitos manualmente algumas vezes.

Você precisa libavcodec54 e libavutil52 ou libavcodec-extra e libavutil-extra-52:
(Eu acho que não faço uso desses pacotes eu mesmo, mas eu os instalei há muito tempo, e terminei com a versão sem o -extra no nome. Eu lembro que foi complicado, então não espere instalá-los, apenas funciona suavemente)

sudo apt-get install libavcodec54 libavutil52

Se isso não ajudar, desinstale-o e tente o outro.

sudo apt-get install libavcodec-extra libavutil-extra-52

(Antes que você pergunte: Eu me lembro vagamente de que o motivo da bagunça de embalagem e dependência não é apenas devido a problemas de licença, mas tinha um componente significativo de, digamos, política entre projetos).


2
2017-08-22 07:16



Então eu corri a primeira linha e já os instalei. Então fui removê-los e como parte da remoção ele quer remover tvheadend, handbrake e vlc. Você pode ter adivinhado que este é um servidor de mídia, então eu realmente não quero removê-los. Então eu tentei instalar apenas os extras - isso funcionou e agora quando eu executo vlc ele não reclama do codec mas eu recebo o seguinte erro repetidamente e nenhum arquivo: [libvo_aacenc @ 0x7f5b7800f080] Erro ao obter o pacote de saída [0x7f5b78001138] codificador avcodec Erro: problema de codificação .. Então, ainda não está realmente funcionando, embora o codificador seja detectado agora. - foxy82
Eu estou supondo que esta é a dependências bagunçadas que você fala presumivelmente devido a ffmpeg vs avconv - foxy82
Uhoh ... por isso ainda é tão confuso para instalar como era quando eu fiz alguns como quatro anos atrás ... Eu não me lembro dos detalhes - como você acabou de escrever enquanto eu estou escrevendo isso - parte da bagunça é que o codecs são de alguma forma intimamente ligados a ffmpeg, bibliotecas não totalmente independentes. Em combinação com o ffmpeg vs avconv questões políticas. - Volker Siegel
Bom, havia alguém perguntando como limpar a bagunça de instalar libavcodec54 - Paralelamente a esta pergunta: askubuntu.com/questions/475632/… - Volker Siegel
Obrigado pela vossa ajuda - muito apreciado! Infelizmente essa solução não parece fazer nada para mim. Lendo listas de pacotes ... Concluído Construindo árvore de dependência Lendo informações de estado ... Feito 0 para atualizar, 0 para instalar recentemente, 0 para remover e 3 para não atualizar. Pelo menos eu sei, em parte, onde o conflito é - perharps eu só removê-los e depois reinstalar as outras coisas que estou usando. - foxy82


Se os sintomas parecerem semelhantes à pergunta, mas os detalhes com o codec parecerem diferentes, pode ser uma configuração confusa de vlc - Isso parece acontecer às vezes.

Aqui está o que você pode fazer:

Para mim, parece que o erro em relação ao codificador está apenas seguindo de outros erros - por que você acha que o problema é o codificador?

Pode ser causado por um quebrado vlc configuração.

Para um primeiro teste, tente

vlc --ignore-config

Você pode se afastar ou remover o diretório de configuração:

mv -i ~/.config/vlc ~/dot-config-vlc-old

ou apenas redefinir a configuração com:

vlc --reset-config

0
2017-08-21 18:06



A razão que eu acho que é o codificador é este comando corre ok, mas produz um arquivo sem som. Se eu mudar o codificador de áudio de "mp4a" para "mp3" funciona bem, mas obviamente eu tenho áudio MP3 em vez de AAC. (Comando em comentário a pergunta) - foxy82
Parece que você estava certo, tente minha outra resposta; Deixarei este aqui separado para leitores com sintomas semelhantes de outras causas. - Volker Siegel


Ok, no final, acabei removendo todos os pacotes libavcodec * e libavutil * (esse servidor foi atualizado várias vezes, parecendo ter alguns antigos).

Eu então usei este guia para construir o libfdk-aac / ffmpeg / vlc http://ubuntuforums.org/showthread.php?t=2141949

No entanto, meu comando não funciona no vlc master ou nas ramificações 2.2 - nenhum arquivo .ts é gravado. Então, eu usei 2.1 branch de vlc git.


0
2017-08-22 13:51