【ffmpeg】(二)常用命令

111 阅读2分钟
// 录制屏幕
// -f: 指定使用 avfoundation 采集数据 
// -i:指定从哪儿采集数据,它是一个文件索引号 1 是屏幕的索引号 
// -r: 指定帧率
ffmpeg -f avfoundation -i 1 -r 30 out.yuv 

// 视频播放
// -video_size 视频大小 
// -pixel_format 视频格式
ffplay -video_size 3584x2240 -pixel_format uyvy422 out.yuv

// 查看设备索引号
ffmpeg -f avfoundation -list_devices true -i ""

// 分解与复用 
// 通过解复用 将 mov 格式文件 转成 flv 或其他格式的过程
// -vcodec copy 视频编码处理方式 copy指不做任何改变
// -acodec copy 音频编码处理方式 copy指不做任何改变
// -vn 不抽取视频
// -av 不抽取音频
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv

// 处理原始数据
// 提取 视频 原始数据 
ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv 
// 提取 音频 原始数据 
ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm 
// 播放原始数据需要在ffplay 后面加上 原始数据的参数 
// 播放原始音频数据,需要添加通道数、采样率、存储大小 
ffplay -ac 2 -ar 48000 -f s16le out.pcm 
// 播放原始视频数据,需要添加视频大小,部分可能还需要带上像素编码格式 pixel_format 
ffplay -video_size 1920x1080 out.yuv

// 滤镜命令

// 整个过程大致为:拿到解码数据帧 , 进行过滤生产过滤后的数据帧,然后重新编码获得编码后的数据帧,最后进行输出
// 视频裁剪命令 
ffmpeg -i in.move -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4 
// -vf 视频裁剪 
// -c:v 视频编码器 
// -c:a 音频编码器

// 音视频裁剪合并
// 裁剪 
ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts 
// 拼接 ffmpeg -f concat -i inputs.txt out.flv 
// inputs.txt 是文件列表,记录所有想合并在一起的文件名称文件格式 "file filename" // 例如 file '1.ts'

// 图片视频互转命令
// 视频分解为图片
ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg 
// 图片合并成视频 
ffmpeg -i image-$3d.jpeg out.mp4

// 直播推拉流
// 直播推流 
// -re 与原视频的帧率保持同步 
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName 
// 直播拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv