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

Docker搭建FFmpeg

FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的完整解决方案。FFmpeg 包含了领先的音视频编解码库libavcodec,可以用于各种视频格式的转换。

应用场景包括:

  • 视频转换:把视频从一种格式转换成另一种格式。
  • 视频压缩:减少视频文件的存储大小。
  • 视频拼接:将多个视频文件合并为一个。
  • 实时流处理:用于直播流的捕获和编码。
  • 视频抓取:从视频文件中提取音频或者图片。
  • 批量处理视频文件:自动化处理大量的视频文件。

使用 Docker CLI 搭建 FFmpeg

步骤 1: 拉取 FFmpeg Docker 镜像

docker pull jrottenberg/ffmpeg

步骤 2: 使用 Docker 运行 FFmpeg 容器

docker run -it --rm -v $(pwd):/tmp/workdir jrottenberg/ffmpeg -i input.mp4 output.avi

参数解释:

  • -it: 交互式运行容器,并分配一个伪终端。
  • --rm: 容器退出时自动清理容器文件系统。
  • -v $(pwd):/tmp/workdir: 将当前目录挂载到容器的 /tmp/workdir,以便于容器访问宿主机的文件。
  • jrottenberg/ffmpeg: 使用的 FFmpeg Docker 镜像名称。
  • -i input.mp4: 指定输入文件。
  • output.avi: 指定输出文件。

使用 Docker Compose 搭建 FFmpeg

创建一个名为 docker-compose.yml 的文件,并填入以下内容:

version: '3'
services:ffmpeg:image: jrottenberg/ffmpegvolumes:- .:/tmp/workdircommand: ffmpeg -i input.mp4 output.avistdin_open: truetty: true

参数解释:

  • version: 指定使用的 Docker Compose API 版本。
  • services: 定义了要运行的服务列表。
  • ffmpeg: 服务的名字。
  • image: 指定使用的 Docker 镜像。
  • volumes: 映射宿主机当前目录到容器的 /tmp/workdir
  • command: 容器启动后执行的命令,这里是运行 FFmpeg 进行视频转换。
  • stdin_open (对应 -i): 保持 STDIN 打开即使没有附加。
  • tty (对应 -t): 分配一个伪 TTY,等同于 Docker CLI 的 -t

步骤 3: 使用 Docker Compose 运行服务

docker-compose up

当需要停止并移除容器和网络时,可以使用:

docker-compose down

以上命令将会启动 FFmpeg 服务,并执行定义在 command 中的 FFmpeg 命令。通过挂载当前目录,可以轻松地处理宿主机中的视频文件。

http://www.lryc.cn/news/338772.html

相关文章:

  • Hudi-ubuntu环境搭建
  • Hive进阶Day05
  • ssh爆破服务器的ip-疑似肉鸡
  • 4.JVM八股
  • 内网渗透系列-mimikatz的使用以及后门植入
  • 5G网络开通与调测ipv4
  • Spark开窗函数之ROW
  • 双向链表的实现(详解)
  • SpringBoot项目中如何使用校验工具
  • AI预测小分子与蛋白的相关特征: MegaMolBART, MoFlow,ESM-1, ESM-2
  • 基于深度学习的花卉检测系统(含PyQt界面)
  • 深度学习图像处理基础工具——opencv 实战信用卡数字识别
  • 【HBase】HBase高性能架构:如何保证大规模数据的高可用性
  • JAVA基础两个项目案例代码
  • asp.net core 网页接入微信扫码登录
  • 【板栗糖GIS】如何给微软拼音输入法加上小鹤双拼
  • 如何解决微信小程序无法使用css3过度属性transition
  • 【软件设计师知识点】九、网络与信息安全基础知识
  • 广东省道路货物运输资格证照片回执可手机线上办理
  • 【微信小程序——案例——本地生活(列表页面)】
  • 【设计模式】SOLID设计原则
  • 基于java+springboot+vue实现的智能停车计费系统(文末源码+Lw+ppt)23-30
  • IntelliJ IDEA 2022.3.2 解决decompiled.class file bytecode version:52.0(java 8)
  • C++11 设计模式1. 模板方法(Template Method)模式学习。UML图
  • HarmonyOS实战开发-自定义分享
  • Spring源码刨析之配置文件的解析和bean的创建以及生命周期
  • 如何使用 Grafana 监控文件系统状态
  • 智能革命:未来人工智能创业的天地
  • 4月14日总结
  • kafka---broker相关配置