使用docker中ffmpeg压缩视频

使用docker中ffmpeg压缩视频

最近找了个视频教程,下载过程中我发现这些视频的体积相当大,短短十分钟的一个小节就将近1G,整体还是非常占磁盘的。那是不是可以对视频进行压缩下呢?

压缩视频很容易想到ffmpeg就可以很容易搞定,视频是存放在家里的群晖上面的,但是不想在群晖上安装太多工具,于是想到了,是不是可以通过在Docker里添加ffmpeg来搞定?

一、思路

  1. Docker内安装ffmpeg;
  2. 把本地原始视频、输出视频、压缩脚本挂载到Docker;
  3. 启动临时容器进行压缩(执行完成释放容器);

二、步骤

  1. 创建一个脚本文件compress_videos.sh
#!/bin/sh

INPUT_DIR="/usr/local/videos"
OUTPUT_DIR="/usr/local/compressed_videos"

mkdir -p "$OUTPUT_DIR"

find "$INPUT_DIR" -type f -name "*.mp4" -exec sh -c 'ffmpeg -i "$1" -c:v libx264 -crf 23 -c:a aac -strict experimental "$2/$(basename "$1")"' sh {} "$OUTPUT_DIR" \;
  1. 创建Dockerfile
FROM alpine:latest
RUN apk add --no-cache ffmpeg

WORKDIR /usr/local/script
COPY compress_videos.sh .
RUN chmod +x compress_videos.sh

CMD ["./compress_videos.sh"]
  1. 构建Docker镜像
docker build -t ffmpeg-compression:latest .
  1. 运行 Docker 容器
docker run --rm \
	-v "/var/services/homes/kevin/learn/video":/usr/local/videos \
	-v "/var/services/homes/kevin/learn/video_compressed":/usr/local/compressed_videos \
	ffmpeg-compression:latest

ffmpeg压缩视频.png
ffmpeg压缩视频.png

执行之后,CPU拉满了,由于群晖是J4125CPU,性能较差,13个小时之后,所有视频完成了压缩,由原来的67G压缩到了10G。

原创文章,作者:Kevin,如若转载,请注明出处:https://zwenkai.com/compress_video_using_ffmpeg_in_docker/

(0)
KevinKevin
上一篇 2023年7月15日
下一篇 2024年1月22日

相关推荐

  • LskyPro企业版更新

    今天在图床网站的后台看,有新版本了,那就升级下吧。我去,竟然失败了~ 一、升级失败 在LskyPro后台的系统升级点击立即安装,提示「请安装 zip 拓展(ZipArchive)」…

    docker 2024年1月22日
    42200
  • 为docker容器分配ip

    在《打造个人写作系统》中,使用到数据库的地方,手动指定了172.17.0.2,也就是mysql docker的门牌号,一旦mysql搬家,就找不到它了。

    docker 2022年11月20日
    93800
  • 迁移反向代理到docker中nginx

    在《打造个人写作系统》中,部署的服务都是http的,然后使用群晖提供的反向代理配置的https,其实群晖内部使用的也是nginx,是不是可以通过docker部署nginx,并配置h…

    docker 2023年7月15日
    57700

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注