无法让 MLT 框架处理 Docker 容器中的音频
Can't get MLT Framework to process audio in Docker container
我正在使用 Docker 创建一个使用 melt
命令进行视频处理的容器。当前输出的所有视频不包含任何音频。
这是 Docker 文件:
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 和多媒体的人来说应该是一个相对容易的修复。
在第一个实例中,音频输出可能默认为 aac,但在大多数版本的 libavcodec 中,aac 要求您还说 "strict=experimental"。如果您明确设置 acodec=aac,melt 会自动为您添加。很快,libavcodec aac 编码器将退出实验状态(如果最近几天还没有的话)。一般来说,您指定的编码参数不足。
第二种情况,你怎么知道没有声音? Quicktime 不支持 MP4 中的 MP3,可能还有一些其他媒体播放器。
事实证明,我需要将 ubuntu-restricted-extras
包安装到我的 Dockerfile 中。一旦到位,一切都会按预期进行。
我正在使用 Docker 创建一个使用 melt
命令进行视频处理的容器。当前输出的所有视频不包含任何音频。
这是 Docker 文件:
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 和多媒体的人来说应该是一个相对容易的修复。
在第一个实例中,音频输出可能默认为 aac,但在大多数版本的 libavcodec 中,aac 要求您还说 "strict=experimental"。如果您明确设置 acodec=aac,melt 会自动为您添加。很快,libavcodec aac 编码器将退出实验状态(如果最近几天还没有的话)。一般来说,您指定的编码参数不足。
第二种情况,你怎么知道没有声音? Quicktime 不支持 MP4 中的 MP3,可能还有一些其他媒体播放器。
事实证明,我需要将 ubuntu-restricted-extras
包安装到我的 Dockerfile 中。一旦到位,一切都会按预期进行。