当前位置: 首页 > ops >正文

使用Docker安装FFmpeg

一、安装Docker

# 安装Docker
https://docs.docker.com/get-docker/# 安装Docker Compose
https://docs.docker.com/compose/install/# CentOS安装Docker
https://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA

二、安装FFmpeg

创建目录:

mkdir ffmpeg
cd ffmpeg

创建docker-compose.yaml文件:

# 方式1、使用jrottenberg/ffmpeg镜像
services:ffmpeg:image: jrottenberg/ffmpegcontainer_name: ffmpegvolumes:- ./data:/tmp/workdir#tty: true#stdin_open: trueentrypoint: ["/sbin/init"]
# 方式2、使用linuxserver/ffmpeg镜像
services:ffmpeg:image: linuxserver/ffmpegcontainer_name: ffmpegvolumes:- ./data:/tmp/workdir#tty: true#stdin_open: trueentrypoint: ["/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/ffmpeg
docker rmi jrottenberg/ffmpeg

三、使用

详见:
https://ffmpeg.org/ffmpeg.html
https://mp.weixin.qq.com/s/z8CiXWDermLz_jKYgFn91Q
https://mp.weixin.qq.com/s/_r6qFcTi_Nc3L98E8zE88w

进入容器

# 进入容器:
docker exec -it ffmpeg bash# 切换目录:
cd /tmp/workdir

查看媒体文件信息

# 命令:ffprobe 或 ffmpeg -iffprobe 文件
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.wav
ffmpeg -i input.mp3 output.m4a# 使用“ffprobe 文件”命令查看文件信息

提取音频

# 查看文件信息,假设当前文件音频为mp4a
ffprobe input.mp4ffmpeg -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.mp4
ffmpeg -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.mp4
ffmpeg -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.ts
ffmpeg -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

四、详见

https://ffmpeg.org/
https://hub.docker.com/r/jrottenberg/ffmpeg
https://github.com/jrottenberg/ffmpeg
https://hub.docker.com/r/linuxserver/ffmpeg
https://github.com/linuxserver/docker-ffmpeg
https://mp.weixin.qq.com/s/z8CiXWDermLz_jKYgFn91Q
https://mp.weixin.qq.com/s/_r6qFcTi_Nc3L98E8zE88w
http://www.xdnf.cn/news/14063.html

相关文章:

  • 【Jmeter】Jmeter 高并发性能压力测试
  • 融智学教育观及其数学公式体系凝练汇总
  • 儿童智能玩具与传统玩具的区别
  • 倍思Nomos多合一桌面充:第六代氮化镓快充技术加持,性能全面提升
  • 【动手学深度学习】3.4. softmax回归
  • 鸿蒙开发-视频学习及实用中的一些小结
  • pytorch实战波斯顿房价回归模型
  • LINE 接入说明
  • 解决麒麟国产操作系统,分辨率下拉框是空白问题。
  • dsp28335
  • 洛谷自己创建的一个小比赛【c++】
  • 【win10神州网信政府版开启远程桌面服务mstsc 】
  • rk3568 , gt1x , 触摸的调试
  • Java Spring ApplicationEvent 概述
  • JavaScript数组方法总结
  • ShardingSphere实现分库分表
  • Vulkan学习笔记6—渲染呈现
  • 目前流行Agent框架对比表
  • Kubernetes安全机制深度解析(三):准入控制器
  • 解析OpenFOAM polymesh网格文件的C/C++程序实现
  • LangServe 完整使用指南:部署LangChain应用到生产环境
  • 硬核对话:“推理模型+智能体”给软件研发带来哪些新的应用场景与价值?
  • MySQL索引优化:回表
  • 上位机如何和PLC通讯(西门子举例)
  • 《解锁B4A:安卓开发的小众利器》
  • 侧向层析检测粘稠样品爬速太慢?默克HF065硝酸纤维素膜带来完美解决方案
  • 单北斗芯片AT9880B
  • pycharm 安装通义灵码插件
  • 基于LLM的图表理解和绘制
  • ONLYOFFICE 的AI技巧-1.集成OCR、文本转图像、电子表格集成等新功能