我有几个(超过 100 个)mp4 视频文件,每个大约 15 MB。我认为它们是不必要的高质量视频,我想通过降低质量来降低每个视频的大小。我知道我可以用 ffmpeg 做到这一点,但我不熟悉比特率、代码等概念,所以有人可以帮忙吗?这是其中一个的元数据:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '16.8-AnomalyDetection-AnomalyDetectionUsingTheMultivariateGaussianDistribution-OPTIONAL.mp4':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isom
creation_time : 2011-12-06 18:56:20
Duration: 00:14:03.40, start: 0.000000, bitrate: 176 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1000x562 [SAR 1:1 DAR 500:281], 45 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc
Metadata:
creation_time : 1970-01-01 00:00:00
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 127 kb/s
Metadata:
creation_time : 2011-12-06 18:56:20
handler_name : GPAC ISO Audio Handler
答案1
我最终这样做了:
#!/bin/bash
for d in $(find .. -maxdepth 1 -name '*.mp4'); do
filename=$(echo "$d" | sed 's:../::')
ffmpeg -i "$d" -b:a 64k -ac 1 -ar 22050 -acodec libmp3lame -s\
640x480 -r 10 "$filename" && rm --interactive=never "$d"
done
选项代表:
- -b:a-> 设置音频比特率
- -交流-> 设置音频通道数。
- -ar-> 设置音频采样频率
- -s-> 设置视频尺寸。
- -r-> 设置每秒帧数