小赖子的英国生活和资讯

批量把MOV视频文件转换成MP4

阅读 桌面完整版

MOV 视频很大, 每次教娃视频如果是在 4k 60fps 下 十来分钟就得1个多G. 我手机上拍完之后用 Dropbox 同步到电脑上, 很快硬盘空间就不太够了.

我们可以用以下脚本批量把MOV视频转换成MP4/MPEG. 脚本是基于开源的视频音频解码程序 https://ffmpeg.org/

BASH 脚本批量把MOV视频压缩转换成MP4

首先, 我们需要扫描当前目录及子目录下的MOV文件, 然后调用 ffmpeg 把每个文件依次转换成MP4. 转换后留5秒时间间隔然后删除原MOV文件.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/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 "{}"' \;
#!/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 来写, 类似的是以下批处理程序:

1
2
3
4
5
6
7
8
9
@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"
)
@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

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version