如何使用 ffmpeg 将 1080p mp4 视频文件缩小为 480p mp4 格式

如何使用 ffmpeg 将 1080p mp4 视频文件缩小为 480p mp4 格式

我有一堆 mp4 格式的视频文件要上传到网上供亲朋好友观看。初步检查显示,每个文件都超过 1 GB,长度在 20-30 分钟之间。

从我录制的电视观看经验来看,这种时长的 480p 视频可以装入不到 300 MB 大小的 mp4 文件中。

我想将这些视频转换为 480p 格式,我想使用的工具是 ffmpeg。因为它可以免费使用,而且是命令行,所以我可以将命令塞进批处理文件中,然后运行它,如果需要的话,几天后就不用管它了。

我搜索了有关使用 ffmpeg 实现目标的帮助,但作为视频处理新手,这毫无帮助。到目前为止,我找到的每个命令都因找不到这个或那个而失败。

我对其中一个文件执行的 ffprobe 命令返回以下信息:

ffprobe version 4.0.2 Copyright (c) 2007-2018 the FFmpeg developers
  built with gcc 7.3.1 (GCC) 20180722
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --e
nable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libblur
ay --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enab
le-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-li
bvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --en
able-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enabl
e-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enabl
e-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enab
le-dxva2 --enable-avisynth
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'vid1080.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.12.100
  Duration: 00:31:45.44, start: 0.000000, bitrate: 4950 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080
 [SAR 1:1 DAR 16:9], 4689 kb/s, 23.98 fps, 23.98 tbr, 16k tbn, 47.95 tbc (defaul
t)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp
, 256 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Side data:
      audio service type: main

我该如何使用系统中已有的编解码器来实现这一点?

答案1

此批处理文件应将您拖放到批处理文件的文件夹中的每部电影都转换为 480p。但您必须将 ffmpeg 添加到 %path% 变量才能使其工作。它应该创建一个新文件,其名称与旧文件相同,但末尾带有 *_New480p.mp4。

@echo off

if not exist "%~1\" (exit) else (set "Folder=%~1")

pushd "%Folder%"
for %%a in (*.mp4 *.avi *.mkv) do ffmpeg -i "%%a" -vf "scale=-2:480" -c:v libx264 -c:a copy "%%~na_New480p.mp4"

在此处输入图片描述

在此处输入图片描述

相关内容