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/ffmpeg
    volumes:
      - .:/tmp/workdir
    command: ffmpeg -i input.mp4 output.avi
    stdin_open: true
    tty: 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 命令。通过挂载当前目录,可以轻松地处理宿主机中的视频文件。

相关推荐

  1. DockerFFmpeg

    2024-04-15 09:46:02       38 阅读
  2. dockergitlab

    2024-04-15 09:46:02       68 阅读
  3. docker 靶场

    2024-04-15 09:46:02       59 阅读
  4. dockercadvisor

    2024-04-15 09:46:02       50 阅读
  5. DockerMinIO

    2024-04-15 09:46:02       47 阅读
  6. Docker Blockbridge

    2024-04-15 09:46:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-15 09:46:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-15 09:46:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-15 09:46:02       87 阅读
  4. Python语言-面向对象

    2024-04-15 09:46:02       96 阅读

热门阅读

  1. (六)PostgreSQL的组织结构(1)

    2024-04-15 09:46:02       44 阅读
  2. 5.Spring&SpringBoot八股

    2024-04-15 09:46:02       32 阅读
  3. async-validator --- 中文文档

    2024-04-15 09:46:02       82 阅读
  4. 我的编程与创作历程:512天从C语言到Linux

    2024-04-15 09:46:02       37 阅读
  5. Pytorch:二维卷积及其伴随定义

    2024-04-15 09:46:02       160 阅读
  6. SpringBoot中的常见注解详细介绍,附带代码示例

    2024-04-15 09:46:02       32 阅读
  7. 神经网络模型底层原理与实现10-softmax的实现

    2024-04-15 09:46:02       134 阅读
  8. PyQt5

    PyQt5

    2024-04-15 09:46:02      111 阅读
  9. 如何防御局域网的网络攻击

    2024-04-15 09:46:02       118 阅读
  10. LeetCode 1.两数之和

    2024-04-15 09:46:02       84 阅读
  11. Fortinet年度重磅发布 ,FortiOS 7.6高能登场

    2024-04-15 09:46:02       50 阅读