11

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

 2 years ago
source link: https://justyy.com/archives/45857
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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资源, 服务器风扇狂转, 噪声增大, 就如飞机起飞. 耗电费时, 所以推荐能在晚上干活, 因为有可能晚上的电费还会便宜些.

convert-all-mov-to-mp4-using-ffmpeg 批量把MOV视频文件转换成MP4 小技巧 折腾 程序设计

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

GD Star Rating
loading...
本文一共 434 个汉字, 你数一下对不对.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK