ffmpeg--学习笔记1-基本使用
来源:互联网 发布:武汉矩阵科技有限公司 编辑:程序博客网 时间:2024/06/15 01:39
1、显示可以使用的设备
ffmpeg -list_devices true -f dshow -i dummy
列表显示设备的名称很重要,输入的时候都是使用-f dshow -i video="{设备名}"
的方式。
我电脑上的可用的设备是为:
- 播放设备:DirectShow video devices
- 摄像头:“USB2.0 VGA UVC WebCam”
2、获取摄像头数据
编码为H.264,保存为本地文件
- 下面这条命令,实现了从摄像头读取数据并编码为H.264,并保存为test_dcamera.mkv
ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam" -vcodec libx264 test_dcamera.mkv
直接播放摄像头获取的数据
- 使用ffplay可以直接播放摄像头的数据,这里dshow就是代表前面的播放设备directShow
ffplay -f dshow -i video="USB2.0 VGA UVC WebCam"
- 也可以使用vfwcap读取摄像头的数据
ffplay -f vfwcap -i 0
使用FFmpeg的list_options查看设备的选项
ffmpeg -list_options true -f dshow -i video="USB2.0 VGA UVC WebCam"
摄像头画面可以有的分辨率
设置分辨率为640x480
ffplay -s 640x480 -f dshow -i video="USB2.0 VGA UVC WebCam"
- 设置分辨率为320x240
ffplay -s 320x240 -f dshow -i video="USB2.0 VGA UVC WebCam"
- 使用ffplay可以直接播放摄像头的数据,这里dshow就是代表前面的播放设备directShow
2、转换格式
命令的格式: ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
- 参数选项;
-an
: 去掉音频-acodec
: 音频选项, 一般后面加copy表示拷贝-vcodec
: 视频选项,一般后面加copy表示拷贝 格式
- h264
: 表示输出的是h264的视频裸流- mp4
: 表示输出的是mp4的视频- mpegts
: 表示ts视频流mp4视频转ts
ffmpeg -i test.mp4 -acodec copy -vcodec copy -f mpegts test.ts
-acodec copy
是将音频内容转换过去-vcocec copy
是将视频内容转换过去mpegts
就是ts格式
3、编码格式
- 编码为H.264,发布为UDP
- 下面这条命令,实现了:获取摄像头数据->编码为H.264->封装为UDP并发送至组播地址
ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f h264 udp://localhost:6666
- 考虑到提高libx264的编码速度,添加了-preset:v ultrafast和-tune:v zerolatency两个选项
- 高分辨率的情况下,使用UDP可能出现丢包的情况。为了避免这种情况,可以添加–s 参数(例如-s 320x240)调小分辨率
- 下面这条命令,实现了:获取摄像头数据->编码为H.264->封装为UDP并发送至组播地址
- 编码为H.264,发布为RTP
- 下面这条命令,实现了:获取摄像头数据->编码为H.264->封装为RTP并发送至组播地址
ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtp rtp://localhost:6666>test.sdp
- 考虑到提高libx264的编码速度,添加了-preset:v ultrafast和-tune:v zerolatency两个选项
- 结尾添加“>test.sdp”可以在发布的同时生成sdp文件。该文件可以用于该视频流的播放
- 下面这条命令,实现了:获取摄像头数据->编码为H.264->封装为RTP并发送至组播地址
- 编码为H.264,发布为RTMP
- 下面这条命令,实现了:获取摄像头数据->编码为H.264->并发送至RTMP服务器
ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://localhost/oflaDemo/livestream
- 下面这条命令,实现了:获取摄像头数据->编码为H.264->并发送至RTMP服务器
- 编码为H.264,发布为UDP
- 与编码为H.264类似,指明-vcodec即可
ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam" -vcodec mpeg2video -f mpeg2video udp://233.233.233.223:6666
- 播放MPEG2的UDP流如下。指明-vcodec为mpeg2video即可
ffplay -vcodec mpeg2video udp://233.233.233.223:6666
- 与编码为H.264类似,指明-vcodec即可
0 0
- ffmpeg--学习笔记1-基本使用
- ffmpeg/avconv使用学习笔记
- FFMpeg学习笔记(1)
- ffmpeg学习笔记1--下载ffmpeg
- FFmpeg的学习笔记1
- ffmpeg学习笔记(1)
- ffmpeg基本命令使用
- ffmpeg基本命令使用
- ffmpeg命令基本使用
- ffmpeg--学习笔记3-学习1-ffmpeg命令行参数
- ffmpeg--学习笔记1-下载安装
- FFMPEG 学习笔记
- FFmpeg 学习笔记(一)
- FFmpeg 学习笔记(二)
- ffmpeg学习笔记
- ffmpeg学习笔记
- FFMpeg学习笔记(2)
- ffmpeg学习笔记
- C陷阱与缺陷阅读笔记(上)
- 《APUE》读书笔记—第七章进程环境
- JAVA实现栈的基本操作
- java单元测试
- 博弈论简单介绍及代码
- ffmpeg--学习笔记1-基本使用
- js校验座机和手机
- 深度学习中激活函数
- Pybrain学习笔记-3 使用Pybrain构建前馈神经网络
- ApplicationContext——ClassPathXmlApplication(一)
- 代码笔记:排序算法初级比较
- 输出3~100的所有素数
- 第一天学习_笔记
- C++文件读写