
thinkz/ffmpeg本镜像基于Alpine 3.12系统构建,集成了FFmpeg音视频处理工具及librtmp库。FFmpeg是一款功能强大的音视频处理工具,支持格式转换、编解码、剪辑等操作;librtmp则提供对RTMP(实时消息传输协议)的支持,可实现RTMP流的推送与拉取。镜像体积轻量,适用于各类音视频处理场景及RTMP相关业务需求。
通过docker run执行FFmpeg命令,需将宿主机文件/目录挂载到容器内以实现文件交互,基本格式如下:
bashdocker run --rm -v [宿主机目录]:[容器内目录] thinkz/ffmpeg:latest ffmpeg [FFmpeg参数]
说明:
--rm表示容器退出后自动删除,避免残留容器文件;-v用于挂载宿主机目录到容器内,实现文件读写。
验证镜像功能完整性:
bashdocker run --rm thinkz/ffmpeg:latest ffmpeg -version docker run --rm thinkz/ffmpeg:latest ffmpeg -encoders | grep -E "h264|aac" # 查看是否支持H.264/AAC编码 docker run --rm thinkz/ffmpeg:latest ffmpeg -protocols | grep rtmp # 验证RTMP协议支持
将宿主机/data/video目录下的input.mp4转码为FLV格式(适合RTMP分发),输出到同目录:
bashdocker run --rm -v /data/video:/workdir thinkz/ffmpeg:latest ffmpeg -i /workdir/input.mp4 -c:v libx264 -c:a aac -f flv /workdir/output.flv
-i指定输入文件,-c:v libx264设置视频编码器为H.264,-c:a aac设置音频编码器为AAC,-f flv指定输出格式为FLV将本地视频文件推送到RTMP服务器(以推流地址rtmp://live.example.com/live/stream-key为例):
bashdocker run --rm -v /data/video:/workdir thinkz/ffmpeg:latest ffmpeg -re -i /workdir/input.mp4 -c:v libx264 -c:a aac -f flv rtmp://live.example.com/live/stream-key
-re表示按视频实际播放速度读取输入(避免推流速度过快),rtmp://...为目标RTMP服务器地址及流密钥从RTMP服务器拉取实时流并保存为MP4文件(保存到宿主机/data/record目录):
bashdocker run --rm -v /data/record:/workdir thinkz/ffmpeg:latest ffmpeg -i rtmp://live.example.com/live/stream-key -c copy /workdir/live_record.mp4
-c copy表示直接复制流数据(不重新编码),减少CPU占用,适用于快速录制


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务