MOV 视频很大, 每次教娃视频如果是在 4k 60fps 下 十来分钟就得1个多G. 我手机上拍完之后用 Dropbox 同步到电脑上, 很快硬盘空间就不太够了.
我们可以用以下脚本批量把MOV视频转换成MP4/MPEG. 脚本是基于开源的视频音频解码程序 https://ffmpeg.org/
BASH 脚本批量把MOV视频压缩转换成MP4
首先, 我们需要扫描当前目录及子目录下的MOV文件, 然后调用 ffmpeg 把每个文件依次转换成MP4. 转换后留5秒时间间隔然后删除原MOV文件.
#!/bin/bash
process() {
local mov="$1"
echo Processing "$mov ..."
ffmpeg -i "$mov" -vcodec h264 -acodec mp2 "$mov.mp4"
echo "Waiting to delete the original file: $mov"
sleep 5
rm -f "$mov"
echo Remaining MOV count = $(find . -name "*.mov" | wc -l)
echo "OK!"
sleep 5
}
export -f process
find . -name "*.mov" -type f -exec bash -c 'process "{}"' \;
该脚本可以跑于LINUX上, 也可以跑于WINDOWS上的 Window Subsystem for Linux (WSL).
跑起来 脚本很占CPU资源, 服务器风扇狂转, 噪声增大, 就如飞机起飞. 耗电费时, 所以推荐能在晚上干活, 因为有可能晚上的电费还会便宜些.
process 是个BASH函数, 是用于执行每一次转换, 你可以改改参数啥的.
WINDOWS 批处理脚本批量把MOV视频压缩转换成MP4
WINDOWS批处理可以用 for 来写, 类似的是以下批处理程序:
@echo off
for /f "delims=" %%m in ('dir /s /b *.mov') do (
echo Processing "%%m ..."
ffmpeg -i "%%m" -vcodec h264 -acodec mp2 "%%m.mp4"
echo "Waiting to delete %%m"
timeout /T 5
del /q "%%m"
)
我们可以用 timeout 来实现WINDOWS上的 sleep 时间间隔等待.
跑了好几天才把 1500多个MOV视频文件压缩到体积小一点的MP4. 硬盘空间省了300多个G. CPU温度升到90多度. 每个CPU满载是90W, 电费可能每天1英镑?
参数 “-vcodec h264 -acodec mp2” 是指定压缩的码, 不指定那么 ffmpeg 会尽量根据原视频文件的参数来进行转换.
英文: Batch Script to Convert MOV Videos to MP4/MPEG using ffmpeg
本文一共 434 个汉字, 你数一下对不对.上一篇: 写在教娃编程视频300天
下一篇: 每年大事记, 回顾总结是为了更好的生活
扫描二维码,分享本文到微信朋友圈


能不能改成这样: ffmpeg -i test.mov -c copy test.mp4
我试过mkv转mp4, 45分钟的视频, 不加 -c copy 要20分钟, 加了之后, 1秒钟之内完成
666, -c copy 就是没有转码 速度当然快吧.
转完之后完全可以正常使用的
对, 就是节省硬盘空间.