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


Я пытаюсь передать поток 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, но, очевидно, не то, что хочу.


2
2017-08-21 16:35


происхождения


Какую команду вы запустили? - Volker Siegel
Добавлен вопрос. - foxy82


ответы:


Возможно, вам действительно не хватает некоторых кодеков, потому что они отделены от некоторых дополнительных пакетов в 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

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


2
2017-08-22 07:16



Поэтому я запустил первую строку и уже установил их. Поэтому пошли, чтобы удалить их, и как часть удаления он хочет удалить tvheadend, handbrake и vlc. Возможно, вы догадались, что это медиа-сервер, поэтому я действительно не хочу их удалять. Поэтому я попытался просто установить дополнительные функции, которые работали, и теперь, когда я запускаю vlc, он не жалуется на кодек, но я неоднократно получаю следующую ошибку и не файл: [libvo_aacenc @ 0x7f5b7800f080] Ошибка получения выходного пакета [0x7f5b78001138] avcodec encoder Ошибка: проблема с кодированием. Так что все еще не работает, хотя теперь обнаружен кодер. - foxy82
Я предполагаю, что это перепутанные зависимости, о которых вы говорите, по-видимому, из-за ffmpeg vs avconv - foxy82
Uhoh ... так что все равно так же беспорядочно устанавливать, как это было, когда я делал некоторые, как четыре года назад ... Я не помню деталей - как вы только что писали, когда я пишу это - часть беспорядка заключается в том, что кодеки как-то тесно связаны с ffmpeg, не совсем полностью независимые библиотеки. В сочетании с ffmpeg против avconv политических вопросов. - Volker Siegel
Приятно, кто-то спрашивал, как очистить беспорядок от установки libavcodec54 - параллельно с этим вопросом: askubuntu.com/questions/475632/... - Volker Siegel
Спасибо за вашу помощь - очень ценю! К сожалению, это решение ничего не делает для меня. Чтение списков пакетов ... Готово Создание дерева зависимостей Чтение информации о состоянии ... Готово 0 до обновления, 0 до новой установки, 0 для удаления и 3 не для обновления. По крайней мере, я знаю частично, где столкновение - перхарпы, которые я просто удаляю, а затем переустанавливаю другие вещи, которые я использую. - foxy82


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

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

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

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

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

vlc --ignore-config

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

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

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

vlc --reset-config

0
2017-08-21 18:06



Причина, по которой я думаю, что это кодер, - эта команда работает нормально, но создает файл без звука. Если я изменю аудиокодер от «mp4a» до «mp3», он отлично работает, но, очевидно, я получаю аудио MP3 вместо AAC. (Команда в комментарии к вопросу) - foxy82
Похоже, вы были правы, попробуйте мой другой ответ; Я оставлю это отдельно для читателей с похожими симптомами по другим причинам. - Volker Siegel


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

Затем я использовал это руководство для создания libfdk-aac / ffmpeg / vlc http://ubuntuforums.org/showthread.php?t=2141949

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


0
2017-08-22 13:51