赞
踩
在 【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境 博客中 , 搭建 FFmpeg 命令行 运行环境 , 就可以在 任意 目录位置 , 执行 ffmpeg 命令 ,
ffmpeg 是一个非常强大的 " 多媒体处理工具 " , 它可以进行 音频 和 视频 的 转码 / 编辑 / 流处理 等操作 ;
命令行输出内容 :
C:\Users\octop>ffmpeg ffmpeg version n4.4-19-g8d172d9409 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 10-win32 (GCC) 20210408 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --enable-libvmaf --enable-vulkan --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --enable-libglslang --enable-libgme --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg' C:\Users\octop>
ffmpeg 命令 的 -i
参数 的作用是 指定 输入文件 或 输入流 , 后面通常紧跟着 输入文件 / 输入流 的 路径 和 名称 ;
如果有一个名为 input.mp4 的视频文件 , 使用 ffmpeg 对其进行处理 , 那么需要 在命令中使用 -i
参数来指定这个文件 :
ffmpeg -i input.mp4 ...
上述命令的 的 ...
可以使用 其他参数来指定 输出文件 / 编解码器 / 过滤器 等 ;
下面 就是 指定一个 avi 格式 的 输出文件 , 将 mp4 格式的 输入文件 input.mp4 转为 avi 格式的输出文件 output.avi ;
执行
ffmpeg -i input.mp4 output.avi
命令 , 即可将 mp4 格式的文件 , 转为 avi 格式的文件 ;
执行
ffplay output.avi
命令 , 使用 ffplay 播放 avi 格式的文件 ;
一般情况下 , ffmpeg 的 -f
参数很少用 , 一般是根据 文件名后缀 自动判定文件格式 ;
ffpeg 命令的 -f
参数 用于 指定 输入或输出的格式 , 即 应该如何 解释输入数据 , 或者应该如何 封装输出数据 ;
当指定输入文件时 , ffmpeg 能够根据 " 文件扩展名 " 自动判断视频文件格式 , 如果文件名没有 文件扩展名 , 或者 文件格式 与 文件扩展名 不匹配 , 此时就需要使用 -f
参数来手动指定格式 ;
下面的命令 就是 将文件转为 avi 格式的文件 , 根据 " output.avi " 文件名称 后面的 " .avi " 扩展名 自动 匹配 文件类型 ;
ffmpeg -i input.mp4 output.avi
ffmpeg 命令的 -f
参数用于 指定 输入或输出 的格式 , 下面列举了一些常用的 -f
参数值 :
-f mp4
: 表示 输入或输出 的 文件格式是 mp4 格式 ;-f avi
: 表示 输入或输出 的文件格式是 avi 格式 ;-f flv
: 表示 输入或输出 的文件格式是 flv 格式 ;-f mov
: 表示 输入或输出 的文件格式是 mov 格式 ;-f mkv
: 表示 输入或输出 的文件格式是 mkv 格式 ;-f wav
: 表示 输入或输出 的文件格式是 wav 格式 ;-f rawvideo
: 表示 原始视频 数据流格式 , 通常用于一些专业的音视频处理 ;-f null
: 特殊的格式 , 用于不产生任何输出文件 , 通常用于测试或性能分析 ;-f image2
: 处理图像序列 , 将 视频帧 保存为一系列的 图片或将图片序列编码成视频 ;-f image2pipe
: 用于通过管道传输图像数据的格式 , 通过标准输入/输出 ( stdin/stdout ) 或其他管道机制将图像数据传递给 FFmpeg 或从 FFmpeg 接收图像数据 ;-f mpegts
: 表示 MPEG 传输流格式,常用于流媒体传输执行
ffmpeg -i input.mp4 -f flv output.flv
命令 , 即可将 mp4 格式的文件 , 转为 flv 格式的文件 ;
执行
ffplay output.flv
命令 , 播放 转换后的 flv 视频文件 ;
输入文件的 信息 : 视频是 AVC 格式的 , 音频是 AAC 格式的 ;
输出文件 信息 : 输出文件时 Flash Video 格式的 ;
ffmpeg 命令 中 使用 -ss position
参数 , 可以 设置 指定 输入文件 的起始时间点 , 可以从 视频 或 音频文件 的指定时间点开始进行处理 , 如 : 裁剪 / 转换格式 等 ;
上述参数 中的 position
参数值 的 格式
10
表示 从 第 10 秒开始播放 ;00:00:15
表示 从第 15 秒开始播放 ;执行
ffmpeg -i input.mp4 -ss 00:00:30 output.mp4
命令 , 可以将 视频文件 从 第 30 秒处开始裁剪 到 结尾位置 ,
转换前的视频信息 :
转换后的视频信息 :
ffmpeg 命令 中 使用 -t duration
参数 , 可以 设置 输出 文件的 视频长度 , duration 指的是播放时间 , 单位是 秒 ;
从 输入文件 中 裁剪出特定长度的音频或视频片段时 , 可以使用 -t
参数 , -t
参数后面跟的时间值可以是秒 ( 如 : 5 表示 5 秒 ) 或者 更详细的时间格式 ( 如 : 00:00:05 表示 5 秒 ) ;
duration
播放时间 参数值 :
5
表示 播放 5 秒钟 ;00:00:05
表示 播放 5 秒钟 ;如果 要 将 输入文件 特定开始点 起的 10 秒视频 进行处理 ,
-ss
设置 输入文件的起始时间-t
参数 设置 播放持续时间注意 : -t
参数指定的时间长度是从 -ss
参数指定的开始时间点计算的 ; 如果没有指定 -ss
参数 , 那么 -t
参数将从视频的开头开始计算播放长度 ;
执行
ffmpeg -i input.mp4 -ss 00:00:30 -t 10 output.mp4
命令 , 将 输入文件 input.mp4 的 第 30 秒开始的 10 秒视频 , 输出到 output.mp4 文件中 ;
输入文件信息 :
输出文件信息 :
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。