×

使用Docker安装FFmpeg

hqy hqy 发表于2026-01-08 23:15:11 浏览18 评论0

抢沙发发表评论

1、安装Docker









# 安装Dockerhttps://docs.docker.com/get-docker/
# 安装Docker Composehttps://docs.docker.com/compose/install/
# CentOS安装Dockerhttps://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA
2、安装FFmpeg
创建目录:


mkdir ffmpegcd ffmpeg

创建docker-compose.yaml文件: 











# 方式1、使用jrottenberg/ffmpeg镜像services:  ffmpeg:    image: jrottenberg/ffmpeg    container_name: ffmpeg    volumes:      - ./data:/tmp/workdir    #tty: true    #stdin_open: true    entrypoint: ["/sbin/init"]










# 方式2、使用linuxserver/ffmpeg镜像services:  ffmpeg:    image: linuxserver/ffmpeg    container_name: ffmpeg    volumes:      - ./data:/tmp/workdir    #tty: true    #stdin_open: true    entrypoint: ["/init"]










说明:# 详见:https://docs.docker.com/reference/compose-file/services/
stdin_open:保持容器的标准输入(STDIN)打开,允许用户在容器中输入命令或与容器交互相当于docker run命令中的-i参数
tty为容器分配一个伪终端(pseudo-TTY)相当于docker run命令中的-t 或 --tty参数
创建并启动容器:

docker-compose up -d
查看容器列表:

docker ps
进入容器:

docker exec -it ffmpeg bash
停止并销毁容器:

docker-compose down
删除镜像:


# docker rmi linuxserver/ffmpegdocker rmi jrottenberg/ffmpeg
3、使用



详见:https://ffmpeg.org/ffmpeg.htmlhttps://mp.weixin.qq.com/s/z8CiXWDermLz_jKYgFn91Q
进入容器:





# 进入容器:docker exec -it ffmpeg bash
# 切换目录:cd /tmp/workdir
查看媒体文件信息:




# 命令:ffprobe 或 ffmpeg -i
ffprobe 文件ffmpeg -i 文件
视频格式转换‌:






ffmpeg -i 1.mp4 -c:v libx264 -c:a aac output.mp4‌
# 参数说明:# -i 参数:指定输入文件# -c:v 参数:指定视频编解码器,如libx264# -c:a 参数:指定音频编解码器,如acc
音频格式转换:




ffmpeg -i input.mp3 output.wavffmpeg -i input.mp3 output.m4a
# 使用“ffprobe 文件”命令查看文件信息
提取音频:









# 查看文件信息,假设当前文件音频为mp4affprobe input.mp4
ffmpeg -i input.mp4 -vn -acodec aac output2.m4a
# 参数说明:# -i 参数:指定输入文件# -vn 参数:无视频# -acodec acc:使用AAC编解码器提取音频
提取视频:


# 提取视频流(无音频)ffmpeg -i input.mp4 -c copy -an output.mp4
剪裁视频:












#ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c copy output.mp4ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 output.mp4
#ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy output.mp4ffmpeg -i input.mp4 -ss 00:01:10 -t 00:00:30 output.mp4
# 参数说明:# -i 参数:指定输入文件# -ss 参数:开始时间# -to 参数:结束时间# -t 参数:持续时间# -c copy:直接复制流
合并视频:










# 将每个视频转为TS格式# -bsf:v h264_mp4toannexb:将H.264码流转换为适用于MPEG-TS的格式。ffmpeg -i video1.mp4 -c copy -bsf:v h264_mp4toannexb video1.tsffmpeg -i video2.mp4 -c copy -bsf:v h264_mp4toannexb video2.ts
# 统一调整所有视频为1080p分辨率,30fps,H.264编码# ffmpeg -i input.mp4 -vf scale=1920:1080 -r 30 -c:v libx264 -preset fast -c:a aac output.mp4
# 拼接TS文件‌ffmpeg -i "concat:video1.ts|video2.ts" -c copy output.mp4
调整分辨率:





ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
# 参数说明:# -i 参数:指定输入文件# -vf 参数:设置分辨率为1280x720
调整比特率:


# 设置视频和音频的比特率ffmpeg -i input.mp4 -b:v 1000k -b:a 128k output.mp4‌
添加水印:











ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v][1:v]overlay=W-w-10:10" output.mp4
# 参数说明:# -i input.mp4:指定输入文件。# -i watermark.png:指定水印文件。# -filter_complex:使用复杂的滤镜表达式。# [0:v][1:v]overlay=W-w-10:10:这里# [0:v]代表第一个输入的视频流(即input.mp4),# [1:v]代表第二个输入的视频流(即水印图片)。# overlay=W-w-10:10表示将水印放置在视频的右上角,其中# W-w-10计算了水印距离视频右侧的10像素距离,而:10则表示距离视频顶部的10像素距离。
退出容器:

exit
4、详见






https://ffmpeg.org/https://hub.docker.com/r/jrottenberg/ffmpeghttps://github.com/jrottenberg/ffmpeghttps://hub.docker.com/r/linuxserver/ffmpeghttps://github.com/linuxserver/docker-ffmpeghttps://mp.weixin.qq.com/s/z8CiXWDermLz_jKYgFn91Q


打赏

本文链接:https://www.kinber.cn/post/6143.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客