Transcode to aac на Ubuntu 14.04 с использованием vlc

2

Я пытаюсь передать поток dvb в VLC, но перекодирую аудио в формат aac, но он не может найти кодировщик. Как его установить?

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 !!!  

Изменить, чтобы добавить команду, которую я запускаю

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}'

Команда предназначена для передачи DVB-адаптера через HLS, перекодирующего его в формат, принятый клиентом. Команда работает, но будет генерировать ts-файлы, которые не имеют звука из-за отсутствия кодировщика. Если я кодирую кодировщик в «mp3», я получаю файл с аудио MP3, но явно не то, что хочу.

    
задан foxy82 21.08.2014 в 18:35
источник

3 ответа

2

Возможно, вам действительно не хватает некоторых кодеков, потому что они отделены от некоторых дополнительных пакетов в ubuntu.

Существует два конфликтующих варианта пакетов: один или один -extra в имени.

Также есть сообщения, что установка пакетов может испортить управление пакетами; По крайней мере, мне приходилось разрешать конфликты вручную пару раз.

Вам нужны либо libavcodec54 , и libavutil52 или libavcodec-extra и libavutil-extra-52 :
(я думаю, что я сам не использую эти пакеты, но я их давно установил и закончил с версией без -extra в имени.Я помню, было сложно, поэтому не ожидайте, что их установка будет работать нормально)

sudo apt-get install libavcodec54 libavutil52

Если это не помогает, удалите его и попробуйте другой.

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

(Прежде чем спросить: я смутно помню, что причина беспорядка в упаковке и зависимости не только из-за проблем с лицензией, но и значительная составляющая, скажем, межпроектной политики.)

    
ответ дан Volker Siegel 22.08.2014 в 09:16
0

Если симптомы похожи на вопрос, но детали с кодеком кажутся разными, это может быть испорченная конфигурация vlc - что иногда случается.

Вот что вы можете сделать:

Мне кажется, что ошибка, связанная с кодировщиком, просто вытекает из других ошибок - почему, по вашему мнению, проблема в кодере?

Это может быть вызвано нарушенной конфигурацией vlc .

Для первого теста попробуйте

vlc --ignore-config

Вы можете отодвинуть или удалить каталог конфигурации:

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

или просто сбросьте конфигурацию с помощью:

vlc --reset-config
    
ответ дан Volker Siegel 21.08.2014 в 20:06
0

Хорошо, в конце концов, я удалил все пакеты libavcodec * и libavutil * (этот сервер был обновлен несколько раз, поэтому, похоже, были старые).

Затем я использовал это руководство для создания libfdk-aac / ffmpeg / vlc Ссылка

Однако моя команда не работает на vlc master или 2.2 branch - файл no.ts написан. Поэтому я использовал ветвь 2.1 из vlc git.

    
ответ дан foxy82 22.08.2014 в 15:51