NotePublic/Software/Applications/FFMPEG/FFMPEG_的基本使用.md

2.7 KiB
Raw Blame History

FFMPEG 的基本使用

安装

安装 FFMPEG

# Manjaro
sudo pacman ffmpeg

Intel Quick Sync Video

若想使用 Intel GPU 进行硬件编解码加速,需要安装 intel-media-sdk

# Manjaro
sudo pacman -S intel-media-sdk

NVIDIA NVENC/NVDEC

若想使用 NVIDIA GPU 进行硬件编解码加速,需要安装 nvidia-utils

# Manjaro
sudo pacman -S nvidia-utils

主要参数

  • -i 设定输入流
  • -f 设定输出格式
  • -ss 开始时间

视频参数:

  • -c:v 是 -vcodec 的缩写,设定视频编解码器,未设定时则使用与输入流相同的编解码器
  • -vn 不处理视频
  • -b 设定视频流量默认为200Kbit/s
  • -r 设定帧速率默认为25
  • -s 设定画面的宽与高
  • -aspect 设定画面的比例

音频参数:

  • -c:a 是 -acodec 的缩写,设定声音编解码器,未设定时则使用与输入流相同的编解码器
  • -an 不处理音频
  • -ar 设定采样率
  • -ac 设定声音的 Channel 数

获取媒体文件信息

# 显示视频编码、尺寸、音轨等.
ffprobe -i <file>

转码

若需采用与源文件视频和音频编码一致的输出文件可使用下列命令,其输出的音频质量和视频质量与源文件一样。

ffmpeg -y -i <input file> -c:v copy -c:a copy -f mp4 <output file>
  • copy 指采用相同的制式

若对音频或视频转码,可使用下列命令:

ffmpeg -y -i <input file> -c:v <video codec> -c:a <audio codec> <output file>

编/解码器类型

编解码器类型可通过命令:

ffmpeg -encoders
ffmpeg -decoders

查看,常用的有

Audio Codec:

  • aac
  • ac3
  • flac

Video Codec:

  • h263
  • libx264
  • libx265
  • h264_qsv: Intel Quick Sync Video 硬件加速器
  • hevc_qsv: Intel Quick Sync Video 硬件加速器
  • mpeg2_qsv: Intel Quick Sync Video 硬件加速器

使用硬件加速转码

ffmpeg -y -hwaccel <hw acc methods> -c:v <hw video decoder> -c:a <audio decoder> -i <input file> -c:v <hw video encoder> -c:a <audio encoder> <output file>

其中 hw acc methods 可用

ffmpeg -hwaccels

命令查看。

分离视频音频流

# 分离视频流
ffmpeg -i <input file> -vcodec copy -an <output file>
# 分离音频流
ffmpeg -i <input file> -acodec copy -vn <output file>

视频截成图片

# -ss 指示开始时间,如 00:00:05
# -i 指定输入文件,如 ideo.mp4
# -f 指定文件格式,如 image2
# -r 指定截取频率1为每1秒截取一张10为每100ms截取一张0.5为每2s截取一张
# output 为输出文件,如 out%3d.jpg输出文件将以out001.jpg、out002.jpg等命名
./ffmpeg -i <input media> -ss <start time> -f <format> -r <rate> <output>