无法让MLT框架在Docker容器中处理audio

我正在使用Docker来使用melt命令创build一个video处理的容器。 此刻输出的所有video都不包含任何audio。

这里是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 

…当我这样做,我没有得到错误,但输出文件中仍然没有audio。

因为我不太了解audio处理,所以我不确定我是否缺less插件或以其他方式未指定要求。 对于一个熟悉Docker和多媒体的人来说,应该是一个相对容易的解决scheme。

首先,audio输出可能默认为aac,但在大多数libavcodec版本中,aac要求您也说“strict = experimental”。 如果你明确地设置acodec = aac,那么融化会自动为你添加。 很快,libavcodec aac编码器将退出实验状态(如果最近几天还没有的话)。 一般来说,你是低于指定的编码参数。

在第二种情况下,你怎么知道没有audio? Quicktime不支持MP4中的MP3,也可能是其他一些媒体播放器。

事实certificate,我需要安装ubuntu-restricted-extras软件包到我的Dockerfile。 一旦到位,一切都按预期工作。