ffmpeg工具手册.md 5.3 KB

ffmpeg工具手册

// 常见功能应该可以快速链接到底下的详细功能模块

常见功能及简介

视频

视频输入 - 采集

视频输入 - 文件:

视频输入 - 流式:

视频处理 - 提取:

视频处理 - 转码:

视频处理 - 拼接:

视频处理 - 截取:

视频处理 - 裁剪:

视频处理 - 融合:

视频处理 - 变速:

视频处理 - 水印:

视频处理 - 抽帧:

视频输出 - 播放:

视频输出 - 文件:

视频输出 - 流式:

音频

音频输入 - 采集

音频输入 - 文件:

音频输入 - 流式:

音频处理 - 提取:

音频处理 - 转码:

音频处理 - 拼接:

音频处理 - 截取:

音频处理 - 融合:

音频处理 - 变速:

音频输出 - 播放:

音频输出 - 文件:

音频输出 - 流式:

功能详细介绍

采集

mac: avfoundation

常用参数
  1. -list_devices <true|false> 用于查看设备支持的采集设备列表 > 示例及输出:
    > ffmpeg_thin -f avfoundation -list_devices true -i '' > [AVFoundation indev @ 0x7fe5ae905a80] AVFoundation video devices:
    > [AVFoundation indev @ 0x7fe5ae905a80] [0] FaceTime高清摄像头(内建)
    > [AVFoundation indev @ 0x7fe5ae905a80] [1] Capture screen 0
    > [AVFoundation indev @ 0x7fe5ae905a80] AVFoundation audio devices:
    > [AVFoundation indev @ 0x7fe5ae905a80] [0] MacBook Pro麦克风
  2. -capture_raw_data 是否捕获原始设备数据。默认值为 0 > -c copy
  3. -drop_late_frames 是否丢弃比期望晚的视频帧,默认值为 true
  4. -capture_cursor 是否捕获鼠标指针,默认值为 0,即不捕获
  5. -capture_mouse_clicks 是否捕获屏幕鼠标点击。默认值为 0

视频输入 - 采集

常用参数、参数含义及常用取值
  1. -video_device_index 指定视频采集设备
  2. -fixel_format 指定视频采集的像素格式,默认是 yuv420p,如果采集时没有指定,且采集设备不支持默认,会默认选择支持列表的第一条作为默认值 > [avfoundation @ 0x7fe78f204300] Supported pixel formats:
    > [avfoundation @ 0x7fe78f204300] uyvy422
    > [avfoundation @ 0x7fe78f204300] yuyv422
    > [avfoundation @ 0x7fe78f204300] nv12
    > [avfoundation @ 0x7fe78f204300] 0rgb
    > [avfoundation @ 0x7fe78f204300] bgr0
  3. -vframes 视频帧数
  4. -framerate / -r 指定视频帧率, 默认是 ntsc, 60ifps > i 代表隔行扫描,p 代表逐行扫描
    > img_5.png
  5. -video_size / -s 指定视频帧宽高 > img_4.png
  6. -vcodec / -codec:v / -c:v 指定视频的编码格式,默认是 libx264
  7. -b:v 视频码率
  8. -aspect 设置宽高比例 (4:3, 16:9 or 1.3333, 1.7777)
  9. -vf 视频过滤器 (scale, crop, split)
  10. -vn 不处理视频
不常用参数/不常用参数取值,如何通过help获取
常见实例:相较简单的场景
##### 将视频设备 0 中的视频和音频设备 0 中的音频录制到 out.avi 中
ffmpeg -f avfoundation -i "0:0" out.avi


##### 将视频设备 2 中的视频和音频设备 1 中的音频录制到 out.avi 中
ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi


##### 使用像素格式 bgr0 从系统默认视频设备录制视频,并且不将任何音频录制到 out.avi 中
ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
使用中常见的error,原因及解决方法

音频输入 - 采集

常用参数、参数含义及常用取值
  1. -audio_device_index 指定视频采集设备
  2. -aframes 音频帧率
  3. -b:a 音频码率
  4. -ar 采样率
  5. -ac 声道
  6. -acodec / -codec:a / -c:a 音频编码器 (libmp3lame, copy 保留原始编码方式)
  7. -af 音频过滤器
  8. -an 不处理音频
不常用参数/不常用参数取值,如何通过help获取

视频输出 - 播放

音频输出 - 播放

常见使用需求或复杂使用场景

// 应该有一个每个需求如何详细展示的例子,需要包含命令和其他什么?

音频

录制一段音频

播放一段音频

播放PCM格式音频

边采集边播放音频

mp4提取音频,格式WAV

WAV格式音频转成PCM格式

音频变速

播放抓包文件

音频格式转码

抽取pcm数据

播放rtp流

重采样pcm数据

合并多个文件 - 转码

合并多个文件 - 非转码

推流,转推流,24小时循环文件推流

视频

录制一段摄像头视频

录制一段屏幕视频

播放一段视频

播放YUV格式视频

播放h264格式视频

边采集边播放视频

mp4提取视频,格式YUV

拼接视频片段

视频变速

间隔1s提取视频帧换面,保存为图片

截取视频片段

添加时间水印,自定义位置,颜色,大小

视频指定分辨率转码

加水印

抽取264数据

播放抓包文件

视频格式转码

播放rtp流

视频文件加字幕

合并多个文件 - 转码

合并多个文件 - 非转码

推流,转推流,24小时循环文件推流

截取视频中的某些帧,并存储成图片

截取直播流片段

直播添加水印

ffprobe

查看视频关键帧间隔,查看pts,dts

查看文件元信息