【FFmpeg】Mac下使用FFmpeg命令

本文详细介绍了如何使用FFmpeg进行视频处理,包括设置环境变量、视频格式转换、音频提取、画面裁剪、视频拼接、图片与视频互转以及直播拉流和推流等操作。通过一系列命令示例,展示了FFmpeg在音视频处理中的强大功能。
摘要由CSDN通过智能技术生成

1 在任意目录下使用 ffmpeg命令,需要把ffmpeg可执行文件路径提前设置到环境变量中

vim ~/.bash_profile 

在文件末尾加上:
export PATH="/usr/local/ffmpeg/bin:$PATH"

保存并关闭后使其生效:
source ~/.bash_profile 

2 分解与复用命令

ffplay animals.mp4

ffmpeg -i animals.mp4 -vcodec copy -acodec copy animal.mov  格式转换,将mp4转成mov
ffplay animals.mov


ffmpeg -i animal.mov -an -vcodec copy animal.h264  将mov抽取出视频,去掉音频
ffplay animals.h264	可以直接播放h264


ffmpeg -i animal.mov -acodec copy -vn animal.aac 抽取音频

3 处理原始数据的命令

针对mp4格式的视频文件,不要音频,视频编码格式用rawvideo,像素格式为yuv420p,输出结果为yuv格式
ffmpeg -i animals.mp4 -an -c:v rawvideo -pix_fmt yuv420p animal.yuv 

ffplay -s 720x1280 animal.yuv 播放时一定要加分辨率大小



不要视频,只要音频,音频采样率 44100,通道数 2,-f表示音频存储格式,s表示有正有负,每一个数值都用16位表示,l表示little,e表示end,小端存储
ffmpeg -i animals.mp4 -vn -ar 44100 -ac 2 -f s16le animal.pcm

ffplay -ar 44100 -ac 2 -f s16le animal.pcm 播放时一定要加参数

4 滤镜命令

视频画面大小裁剪

-vf表明后面是视频滤镜,这里使用crop滤镜,crop的参数是:in_w是本身视频的宽,减去200,in_h-200视频高度减去200
视频编码器libx264,音频编码器采用copy的模式,表示不处理音频
ffmpeg -i animal.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy animal_crop.mp4
ffmpeg -i animal.mov -vf crop=in_w-200:in_h-200 -vcodec libx264 -acodec copy animal_crop.mp4 完全同上,使用-vcodec代替-c:v

5 裁剪与合并命令

视频裁剪:
从第0小时,第0分钟,第20s开始,裁剪10s的视频,输出格式是ts
ffmpeg -i animals.mp4 -ss 00:00:20 -t 10 animal_10s.ts


视频拼接
将txt文件中的所有视频文件拼接成一个文件
ffmpeg -f concat -i inputs.txt animal_concat.mp4 

其中inputs.txt:
file 'animal_10s.ts'
file 'animal_5s.ts'

6 图片与视频互转命令

视频转图片
-r指定转换图片的帧率,每秒转出1帧
-f告诉ffmpeg,我要将图片输出为image2格式
最后是命名格式
ffmpeg -i animals.mp4 -r 1 -f image2 images/image-%3d.jpeg  这里要自己提前建立好一个空的images文件夹
得到:
image-001.jpeg	image-002.jpeg	image-003.jpeg	image-004.jpeg	image-005.jpeg	image-006.jpeg	image-007.jpeg



图片转视频
ffmpeg -i images/image-%3d.jpeg animal_images.mp4

7 直播拉流和推流

推流
-re 减慢帧率,不要追求尽可能快的播放
-c 表示同时包括音视频的编解码方式,都是copy
-f 表示推送出去的文件格式,是flv格式
ffmpeg -re -i animals.mp4 -c copy -f flv rtmp://server/live/streamName


拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv  

可以用ffplay去播放湖南卫视的rtmp地址:
ffplay rtmp://58.200.131.2:1935/livetv/hunantv

然后用ffmpeg播放同样的地址:
ffmpeg -i rtmp://58.200.131.2:1935/livetv/hunantv -c copy dump.flv  

同样的方法拉取cctv1的视频,它会保存成一段一段的:
ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -c copy dump.m3u8 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值