0

我正在使用 Docker 使用melt命令创建一个用于视频处理的容器。目前输出的所有视频都不包含任何音频。

这是 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 和多媒体的人来说,这应该是一个相对容易的解决方法。

4

2 回答 2

1

在第一种情况下,音频输出可能默认为 aac,但在大多数版本的 libavcodec 中,aac 要求您还说“strict=experimental”。如果您明确设置 acodec=aac,那么 melt 会自动为您添加。很快,libavcodec aac 编码器将退出实验状态(如果最近几天还没有)。通常,您未指定编码参数。

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

于 2015-10-12T06:06:05.307 回答
1

事实证明,我需要将ubuntu-restricted-extras包安装到我的 Dockerfile 中。一旦到位,一切都会按预期工作。

于 2015-11-18T00:56:39.017 回答