ffmpeg之常用命令的学习

本文详细介绍FFmpeg的多种应用场景,包括基本信息查询、录制视频与音频、数据格式转换、原始数据处理、视频裁剪与合并、图片与视频互转及直播相关操作。通过具体命令示例,帮助读者快速掌握FFmpeg的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.基本信息查询命令

 

2.录制命令

(1)录制视频(屏幕)

ffmpeg -f avfoundation -i 1 -r 30 out.yuv
  • -f:指定使用avfoundation采集数据

  • -i:指定从哪儿采集数据,它是一个文件索引号

  • -r:指定帧率

录制视频测试

1.终端中输入命令

ffmpeg -f avfoundation -i 1 -r 30 out.yuv

 

2.录制结束,播放录制视频

ffplay out.yuv

会出现如下问题:

 

是因为ffplay输入的是原始数据,不知道存的数据每一张图的大小是多少,所以无法渲染展示。所以我们需要给他一个尺寸大小。

我们在录制的时候有一个大小参数

 

带上这个参数去播放视频

ffplay -s 2560-1600 out.yuv

 

但是视频确是乱码,没法看。这是因为ffplay打开是按照yuv420p格式来的,而视频录制时的格式为uyvy422,所以需要指定视频录制时的格式。

ffplay -s 2560-1600 -pix_fmt uyvy422  out.yuv

这时候我们就可以看到刚才录制的视频了

(2)录制视频(摄像头)

ffmpeg -f avfoundation -list_devices true -i ""

使用上述命令可以看到当前mac系统下acfoundation支持哪种设备

 

video[0]代表摄像头,video[1]代表屏幕,autio[0]代表内置麦克风。

下面我们开始录制摄像头版的视频,把-i的值改为0即可

ffmpeg -f avfoundation -i 0 -r 30 out1.yuv

 

日志告诉我们 Selected framerate (29.970030) is not supported by the device ,默认的framerate 不被设备支持,下面也给出了支持的分辨率和framerate,所以我们需要改一下命令

ffmpeg -f avfoundation -video_size 640x480 -framerate 30 -i 0: -r 30 out1.yuv

录制一定时间后,结束录制,打开刚才的视频

ffplay -s 640*480 -pix_fmt uyvy422  out1.yuv

(2)录制音频

ffmpeg -f avfoundation -i :0 out.wav

打开刚才录制的音频

ffplay out.wav

 

3.分解/复用命令

(1)多媒体格式转换

ffmpeg -i out.mp3 -vcodec copy -acodec copy out.flv
  • -i:输入文件

  • -vcodec copy:视频编码处理方式

  • -acodec copy:音频编码处理方式

例如我们要将一个mp4视频文件中的音频提取出来

ffmpeg -i test.mp4 -vn -acodec copy test111.aac

还可以将视频文件中的视频提取出来

ffmpeg -i test.mp4 -vcodec copy  -an  test222.h264

我们可以用ffmplay打开这两个音视频文件

4.处理原始数据命令

(1)提取YUV数据

ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv

(2)提取PCM数据

ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

这里我们提取一个mp3文件的PCM数据

ffmpeg -i /Users/apple/Music/网易云音乐/许嵩\,何婷\ -\ 素颜.mp3 -vn -ar 44100 -ac 2 -f s16le out3.pcm

然后通过ffplay播放

ffplay -ar 44100 -ac 2 -f s16le  out3.pcm

5.裁剪与合并命令

(1)裁剪

ffmpeg -i input.mp4 -ss 00:00:00 -t 10 1.ts
  • -i:需要裁剪的视频

  • -ss:裁剪开始的时间 时:分:秒

  • -t:裁剪的时间

(2)合并

ffmpeg -f concat -i inputs.txt -c:v out.flv
  • input.txt内容为需要合并的文件,格式为

    file '1.ts'
    file '2.ts'

6.图片/视频互转命令

(1)视频转图片

ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg

(2)视频转图片

ffmpeg -i video-frame-%3d.jpeg -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4

7.直播相关命令

(1)直播推流

ffmpeg -re -i out.mp4 -c copy -f flv remp://server/live/streamName

(2)直播拉流

ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值