FFMPEG在Windows上采集视频和音频
来源:互联网 发布:淘宝 小电影 编辑:程序博客网 时间:2024/06/04 23:35
FFMPEG常识
参数
参考:ffmpeg-比特率,帧率和文件大小
下载资源
下载ffmpeg安装包
加入环境变量:
e:\ProgramFiles_D\ffmpeg\bin\
输入设备 dshow 的使用——用电脑摄像头和麦克风录视频
打印 DirectShow 支持的设备列表(true 可用1替换)
ffmpeg -list_devices true -f dshow -i dummy
[dshow @ 00000000025d1ca0] DirectShow video devices (some may be both video and audio devices)[dshow @ 00000000025d1ca0] "Logitech HD Webcam C310"[dshow @ 00000000025d1ca0] Alternative name "@device_pnp_\\?\usb#vid_046d&pid_081b&mi_00#6&98e0120&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083}"[dshow @ 00000000025d1ca0] DirectShow audio devices[dshow @ 00000000025d1ca0] "楹﹀厠椋?(HD Webcam C310)"
上述命令有问题:audio那里有乱码,把乱码ANSI转UTF-8之后,开始测试不行,后来发现是自己疏忽大意,乱码部分转码后为“内装麦克风 ”,然后接可以正常使用了.
中文乱码查看
如果不熟悉ANSI转码UTF-8的话,还有一种更简单的方式查看设备的名称。即不使用FFmpeg查看系统DirectShow输入设备的名称,而使用Windows kit自带的工具graphedt.exe(或者网上下一个GraphStudioNext)查看输入名称。
选择【图像】->【插入过滤】,可以看到中文名称为“麦克风 (HD Webcam C310)”,注意中间括号前有空格。
视频录制
//方式一ffmpeg -f dshow -i video="Logitech HD Webcam C310" -vcodec libx264 e:\\001.mkv//方式二:“-r 5”的意思是把帧率设置成5ffmpeg -f dshow -i video="Logitech HD Webcam C310" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency e:\\MyDesktop.mkv
上面组合命令设置了x264参数和aac添加adst filter,
如果想提高x264编码速度可使用 -preset:v ultrafast -tune:v zerolatency 两个参数,
举个例子:
ffmpeg -f dshow -i video=”Logitech HD Webcam C310” -vcodec libx264 -preset:v ultrafast -tune:v zerolatency e:\004.mp4
录一段视频,按 q 键停止.
播放:
ffplay e:\\001.mkv
音频录制
//test1ffmpeg -f dshow -i audio="麦克风 (HD Webcam C310)" -acodec aac e:\\temp.aac//test2ffmpeg -f dshow -i audio="麦克风 (HD Webcam C310)" -ar 16000 -ac 1 lib.wav
图片生成录制
//1.截取视频某一秒图片ffmpeg -ss 00:02:06 -i 3.flv -f image2 -y test1.jpg//2.实时抓取图片ffmpeg -f dshow -rtbufsize 200M -i video="Logitech HD Webcam C310" -r 1 -f image2 image%03d.jpeg
音视频录制
//test1ffmpeg -f dshow -i video="Logitech HD Webcam C310":audio="麦克风 (HD Webcam C310)" -s 640x360 -b:v 1000k -b:a 128k e:\\output.mkv//test2ffmpeg -f dshow -i video="Logitech HD Webcam C310":audio="麦克风 (HD Webcam C310)" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -acodec libmp3lame e:\\002.mkv //test3ffmpeg -f dshow -i video="Logitech HD Webcam C310":audio="麦克风 (HD Webcam C310)" -pix_fmt yuv420p -ar 48000 -vcodec libx264 -crf 23 -preset veryslow -x264opts b-adapt=2:bframes=0:aq-strength=1:psy-rd=0.8,0 -vsync vfr -acodec aac -bsf:a aac_adtstoasc -f flv e:\\002.flv
实战
音视频实时采集输出
ffmpeg -f dshow -rtbufsize 200M -i video="Logitech HD Webcam C310":audio="麦克风 (HD Webcam C310)" -pix_fmt yuv420p -ar 48000 -vcodec libx264 -crf 23 -preset veryslow -x264opts b-adapt=2:bframes=0:aq-strength=1:psy-rd=0.8,0 -vsync vfr -acodec aac -bsf:a aac_adtstoasc -f flv e:\\002.flv
音视频和图片实时采集输出
ffmpeg -f dshow -rtbufsize 200M -i video="Logitech HD Webcam C310":audio="麦克风 (HD Webcam C310)" -pix_fmt yuv420p -ar 48000 -vcodec libx264 -crf 23 -preset veryslow -x264opts b-adapt=2:bframes=0:aq-strength=1:psy-rd=0.8,0 -vsync vfr -acodec aac -bsf:a aac_adtstoasc -f flv 3.flv -r 1 -f image2 image%03d.jpeg
ffmpeg音视频合成
ffmpeg -i a.wav -i a.avi out.avi
ffmpeg音视频合成-延迟
ffmpeg.exe -i user_review.wav -i user_review.avi -filter_complex "adelay=3000|3000" out.avi //-filter_complex "adelay=3000|3000":对前面的ogg音频的两个声道都延迟3000毫秒 //参考:http://ffmpeg.org/ffmpeg-all.html#adelay
参考:ffmpeg音视频合成
多个视屏合成
FFMpeg无损合并视频的多种方法
FFMPEG使用参数详解
自动获取音视频设备名称
@echo off&setlocal enabledelayedexpansion::method 1: 固定设备名称REM ::延时2秒REM ::ping -n 1 127.0.0.1>nulREM ffmpeg -f dshow -i audio="麦克风 (HD Webcam C310)" -ar 16000 -ac 1 %1REM ::del /f /s /q %1REM ::del /f /s /q plot\\data\\img\\*.*REM ::录制音视频图片REM ::ffmpeg -f dshow -rtbufsize 200M -i video="Logitech HD Webcam C310":audio="麦克风 (HD Webcam C310)" -pix_fmt yuv420p -ar 48000 -vcodec libx264 -crf 23 -preset veryslow -x264opts b-adapt=2:bframes=0:aq-strength=1:psy-rd=0.8,0 -vsync vfr -acodec aac -bsf:a aac_adtstoasc -f flv %1 -r 1000 -f image2 plot\\data\\img\\image%%3d.jpg::method 2: 自动获取设备名称::ffmpeg默认输出utf-8ffmpeg -list_devices true -f dshow -i dummy 2>temp_utf.txt::utf-8 转 gbk,批处理不支持utf-8文件iconv.exe -f utf-8 -t gbk temp_utf.txt >temp_gbk.txtREM findstr /c:"dshow @ " temp_gbk.txt>e1.txtset find_audio_name=0for /f "delims=" %%i in (temp_gbk.txt) do ( ::找到"DirectShow audio devices" 的下一行即为设备名 echo %%i | findstr /c:"DirectShow audio devices" >nul 2>nul if !find_audio_name! equ 1 ( echo %%i for /f tokens^=2^ delims^=^" %%a in ("%%i") do ( echo "%%a" >out.txt goto end ) ) ::设置标志 if !errorlevel! equ 0 ( set find_audio_name=1 echo find ) else ( echo not find )):endfor /f "delims=" %%a in (out.txt) do ( echo %%a ffmpeg -f dshow -i audio=%%a -ar 16000 -ac 1 %1 )::删除临时文件del /f /s /q temp_utf.txtdel /f /s /q temp_gbk.txtdel /f /s /q out.txtpause
参考:使用windows命令和iconv.exe批量转换文件编码
参考
1.FFmpeg获取DirectShow设备数据(摄像头,录屏)
2. ffmpeg 捕获屏幕和采集声卡、摄像头、麦克风声音
3.代码:最简单的基于FFmpeg的AVDevice例子(读取摄像头)
4.代码:ffmpeg实现录屏+录音
5.windows环境下搭建ffmpeg开发环境
- FFMPEG在Windows上采集视频和音频
- mac os上使用ffmpeg采集视频和音频
- ffmpeg在windows下视频采集
- ffmpeg在windows下视频采集
- ffmpeg在windows下视频采集
- ffmpeg在windows下视频采集
- Android 视频和音频采集
- ios视频和音频采集
- ffmpeg摄像头视频采集 音频采集的正确参数
- ffmpeg摄像头视频采集 音频采集的正确参数
- Windows上的音频采集技术(转)
- Windows上的音频采集技术
- Windows上的音频采集技术(转)
- Windows上的音频采集技术
- Windows上的音频采集技术
- android视频和音频采集及预览
- FFmpeg-音频和视频应用程序的瑞士军刀
- Windows 下音频数据采集和播放
- Python3 File(文件) 方法
- 在ArcGIS Online中创建三维图层和网络场景(2017.9)
- C语言实验——圆柱体计算
- 《着色器和屏幕特效》读书笔记第二章-表面着色器和纹理映射
- 网易云深度学习第一课第二周编程作业
- FFMPEG在Windows上采集视频和音频
- *【bzoj 1603】打谷机(DFS)
- 指针和引用
- Deeplearning.ai 课程
- Java内存管理——深入Java虚拟机(六)
- centos下一些常用和不常用配置
- hdu-2197-本原串
- Eclipse添加和设置SVN
- 略略略第一次发blog咯