侧边栏壁纸
博主头像
Eoser's page! 博主等级

@学习@生活@自己

  • 累计撰写 114 篇文章
  • 累计创建 29 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

ffmpeg 学习:ffmpeg 命令行

eoser
2023-04-10 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

基本知识

点击进入FFmpeg官网 ffmpeg 是一个通用的媒体转换器。它可以读取各种各样的 输入-包括实时抓取/记录设备-过滤并转码 转换成大量的输出格式。

  • 基本指令格式
    ffmpeg [全局配置] {[输入文件配置] -i input_url} ... {[输出文件配置] output_url} ...

煎蛋测试的一些案例

  • 转码
    # mp4 转 avi
    ffmpeg -i input.mp4 output.avi
    # mp4 转 avi,且输出文件的视频比特率设置为64 kbit/s
    ffmpeg -i input.mp4 -b:v 64k -bufsize 64k output.avi
    # mp4 转 m2v,且限制输出文件帧数为10帧
    ffmpeg -i input.mp4 -r 10 output.m2v
    # 下面的指令需要输入文件有要求(valid for raw formats only),没搞懂什么意思
    # m2v 转 mp4,且将输入文件的1帧转换为3帧
    ffmpeg -r 1 -i output.m2v -r 3 output.mp4
  • 剪辑视频
    # 从输入视频的2:00开始剪辑一段时长1:30的视频,-y代表输出文件存在则覆盖
    ffmpeg -y -ss 2:00 -i input.mp4 -to 1:30 output_short.mp4
    # 同上,但是这里-fs限制了生成文件大小为4000000字节
    ffmpeg -y -ss 2:00 -i input.mp4 -to 1:30 -fs 4000000 output_short.mp4

指令文档

ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... 下面是fffmpg的帮助信息

获得帮助:
    -h      -- 打印基本选项
    -h long -- 打印更多选项
    -h full -- 打印所有选项(包括所有格式和编解码器特定选项,非常长)
    -h type=name -- 根据name打印所有选项:decoder/encoder/demuxer/muxer/filter/bsf/protocol(解码器/编码器/解复用器/复用器/滤波器/bsf/协议)

打印帮助/信息/功能:
-L                  show 证书信息
-h topic            show 帮助信息
-? topic            show 帮助信息
-help topic         show 帮助信息
--help topic        show 帮助信息
-version            show 版本信息
-buildconf          show 构建配置信息
-formats            show 可用的格式
-muxers             show 可用的多路复用器
-demuxers           show 可用的解复用器
-devices            show 可用的设备
-codecs             show 可用编解码器
-decoders           show 可用的解码器
-encoders           show 可用的编码器
-bsfs               show 可用的比特流过滤器
-protocols          show 可用的协议
-filters            show 可用的筛选器
-pix_fmts           show 可用的像素格式
-layouts            show 标准通道布局
-sample_fmts        show 可用的音频样本格式
-colors             show 可用的音频样本格式
-sources device     list 输入设备的来源
-sinks device       list 输出设备的汇点
-hwaccels           show 可用的硬件加速方法

全局选项(影响整个程序,而不是仅影响一个文件):
-loglevel loglevel  set 日志级别
-v loglevel         set 日志级别
-report             生成报告
-max_alloc bytes    set 设置单个已分配块的最大大小
-y                  覆盖输出文件
-n                  从不覆盖输出文件
-ignore_unknown     忽略未知流类型
-filter_threads number     非复杂筛选器线程数
-filter_complex_threads number  -filter_complex的线程数
-stats              编码期间打印进度报告
-max_error_rate maximum 解码错误的最大错误率比率(0.0:无错误,1.0:100%错误),超过该比率,ffmpeg将返回错误而不是成功。
-bits_per_raw_sample number  set 每个原始样本的位数
-vol volume         更改音频音量(256=normal)

每个文件的主选项:
-f fmt              强制格式
-c codec            编解码器名称
-codec codec        编解码器名称
-pre preset         预置名
-map_metadata outfile[,metadata]:infile[,metadata]  从infile设置outfile的元数据信息
-t duration         录制或转码audio/video的“duration”秒数
-to time_stop       记录或转码停止时间
-fs limit_size      设置限制文件大小(以字节为单位)
-ss time_off        设置开始时间偏移
-sseof time_off     设置相对于EOF的开始时间偏移
-seek_timestamp     enable/disable使用-ss按时间戳查找
-timestamp time     设置录制时间戳('now'可设置当前时间)
-metadata string=string  添加元数据
-program title=string:st=number...  添加具有指定流的程序
-target type        指定目标文件类型(带有可选前缀“pal-”、“ntsc-”或“film-”的“vcd”、“svcd”、”dvd“、”dv“或”dv50“)
-apad               音频垫
-frames number      设置要输出的帧数
-filter filter_graph  设置流过滤器图
-filter_script filename  从文件中读取流筛选器图描述
-reinit_filter      输入参数变化的reinit滤波器图
-discard            丢弃
-disposition        处置

视频选项:
-vframes number     设置要输出的视频帧数
-r rate             设置帧速率(Hz值、分数或缩写)
-fpsmax rate        设置最大帧速率(Hz值、分数或缩写)
-s size             设置帧大小(WxH或缩写)设置帧大小
-aspect aspect      设置纵横比(4:3、16:9或1.3333、1.7777)
-bits_per_raw_sample number  设置每个原始样本的位数
-vn                 禁用视频
-vcodec codec       强制视频编解码器('copy' to copy stream)
-timecode hh:mm:ss[:;.]ff  设置初始TimeCode值。
-pass n             选择通道编号(1到3)
-vf filter_graph    设置视频过滤器
-ab bitrate         音频比特率(请使用 -b:a)
-b bitrate          视频比特率(请使用 -b:v)
-dn                 禁用数据

音频选项:
-aframes number     设置要输出的音频帧数
-aq quality         设置音频质量(特定于编解码器)
-ar rate            设置音频采样率(Hz)
-ac channels        设置音频通道数
-an                 禁用音频
-acodec codec       强制音频编解码器('copy' to copy stream)
-vol volume         更改音频音量(256=normal)
-af filter_graph    设置音频过滤器

字幕选项:
-s size             设置帧大小(WxH或缩写)
-sn                 禁用字幕
-scodec codec       强制字幕编解码器('copy' to copy stream)
-stag fourcc/tag    强制字幕 tag/fourcc
-fix_sub_duration   固定字幕持续时间
-canvas_size size   设置画布大小(WxH或简写)
-spre preset        将字幕选项设置为指示的预设
0

评论区