2015-10-10 3 views
0

Я использую Docker для создания контейнера для обработки видео с помощью команды melt. Все видео, выводимые на данный момент, не содержат звука.Невозможно получить MLT Framework для обработки звука в контейнере Docker

Вот Dockerfile:

FROM ubuntu 
RUN apt-get update 
RUN apt-get install -y melt swh-plugins 
WORKDIR /input 
CMD [ "melt", "input.mp4", "-consumer", "avformat:/output/output.mp4" ] 

Когда я бегу контейнер, я получаю следующее сообщение об ошибке:

consumer_avformat.c: Unable to encode audio - disabling audio output. 

Я подозреваю, что это говорит о многом. Тем не менее, я попытался запустить команду как:

melt input.mp4 -consumer avformat:/output/output.mp4 acodec=libmp3lame 

... когда я делаю, я не получаю ошибку, но до сих пор нет ни в выходном файле.

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

ответ

1

Оказалось, что мне необходимо установить пакет ubuntu-restricted-extras в свой файл Dockerfile. Как только это было на месте, все работает так, как ожидалось.

1

В первом случае аудио выход, по-видимому, не соответствует ааку, но в большинстве версий libavcodec aac требует, чтобы вы также сказали «strict = experimental». Если вы явно установили acodec = aac, то расплав автоматически добавит это для вас. Скоро, libavcodec aac encoder выйдет из экспериментального состояния (если оно еще не было в последние дни). В общем, вы недоопределили параметры кодирования.

Во втором случае, как вы знаете, что нет звука? Quicktime не поддерживает MP3 в MP4, а также некоторые другие медиаплееры.

Смежные вопросы