ffmpeg 视频操作
//删除音频
ffmpeg -i video.MP4 -vcodec copy -an output_file.mp4
ffmpeg -i output_file.mp4 -i video_01.mp3 -vcodec copy -acodec copy output.mp4
合并音视频
ffmpeg.exe -i 1.mp4 -i 1.mp3 -vcodec copy -acodec copy 1.mp4
分离视频出来:
ffmpeg -i test.mp4 -vcodec copy -an 视频流.avi
分离音频出来:
ffmpeg -i video.MP4 -acodec copy -vn video_yin.mp3
在分离音视频的时候,不需要这么麻烦,只要执行简单的语句就行:
分离视频:ffmpeg -i 1.mp4 1.avi
分离音频:ffmpeg -i 1.mp4 1.mp3
分离的音频可以做单独的降噪处理变声等待操作
ffmpeg.exe -ioutput_file.mp4 -i video_yin.aac -vcodec copy -acodec copy 1.mp4
按时间截取
ffmpeg -i video1.mp4 -vcodec copy -acodec copy -ss 00:53:00 -to 00:54:15 cutout1.mp4 -y
按帧数截取
ffmpeg -i input.mp4 -vf "select=between(n\,20\,200)" -y -acodec copy output.mp4
https://blog.csdn.net/zhoubotong2012/article/details/79338093/
1.用命令行枚举采集设备和采集数据
打开Cmd命令行控制台,进入FFmpeg的Bin目录,输入如下命令:
ffmpeg -list_devices true -f dshow -i dummy
在上面的命令行窗口中列出了两个设备,一个是视频采集设备,另外是一个音频采集设备。另外,我们发现:音频设备的名称有乱码,因为其中有中文名称,后面在讲到用API采集数据的时候会提到解决这个问题的方法。
接着我们输入另外一个命令行:
ffmpeg -list_options true -f dshow -i video="USB 2861 Device"
ffmpeg -list_options true -f dshow -i video="@device_pnp_\\?\usb#vid_5986&pid_212b&mi_00#6&1c3f9d97&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
楹﹀厠椋?(HIK 2K Camera-Audio)
ffmpeg -list_options true -f dshow -i video="HIK 2K Camera"
ffmpeg -list_options true -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{156409C2-9919-49C8-BF06-04AFC2BE01D4}"
ffmpeg -list_options true -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)"
这个命令行的作用是获取指定视频采集设备支持的分辨率、帧率和像素格式等属性,返回的是一个列表,结果如下:
这里我们看到采集设备支持的最大分辨率是720x576,输出像素格式是yuyv422,支持的帧率为29.97和25FPS。
下面我们执行另外一条命令,将摄像头的图像和麦克风的音频录制保存成一个文件。命令如下:
ffmpeg -f dshow -i video="USB 2861 Device" -f dshow -i audio="线路 (3- USB Audio Device)" -vcodec libx264 -acodec aac -strict -2 mycamera.mkv
这里有些读者可能会问:采集设备不是支持多个分辨率吗?怎么设置采集时用哪一种分辨率输出?答案是用“-s”参数设置,若在上面的命令行加上“-s 720x576”,则FFmpeg就会以720x576的分辨率进行采集,如果不设置,则以默认的分辨率输出。
录屏录音
ffmpeg -f dshow -i video="HIK 2K Camera" -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{156409C2-9919-49C8-BF06-04AFC2BE01D4}" -vcodec libx264 -acodec aac -strict -2 mycamera.mkv
ffmpeg -f dshow -i video="HIK 2K Camera" -f dshow -i audio="麦克风 (Realtek(R) Audio)" -vcodec libx264 -acodec aac -strict -2 mycamera.mkv
https://blog.csdn.net/tanhuifang520/article/details/79623978
(1)只录制音频
ffmpeg -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)" -acodec libmp3lame window.mp3
ffmpeg -f dshow -i audio="Stereo Mix (Realtek High Defini" typing.wav
(2)只录制视频
ffmpeg -f dshow -i video="Integrated Camera" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency MyDesktop.mp4
(3)录制音频和视频
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -pix_fmt yuv420p -vcodec libx264 -acodec libvo_aacenc -s 1280x720 -r 25 -q 10 -ar 44100 -ac 2 -tune zerolatency -preset ultrafast -f mpegts - | ffmpeg -f mpegts -i - -c copy -bsf:a aac_adtstoasc -f flv temp.flv
https://blog.csdn.net/c_base_jin/article/details/106773589
(4)录制音频和屏幕
gdigrab是基于GDI的抓屏设备,可以用于抓取屏幕的特定区域。在这里记录一下gdigrab的用法。
gdigrab通过设定不同的输入URL,支持两种方式的屏幕抓取:
(1)“desktop”:抓取整张桌面。或者抓取桌面中的一个特定的区域。
(2)“title={窗口名称}”:抓取屏幕中特定的一个窗口。
//gdigrab设备 采集整个桌面 可以用
ffmpeg -f gdigrab -framerate 30 -i desktop output.mkv
ffmpeg -f gdigrab -i desktop -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)":audio="麦克风 (Realtek(R) Audio)" -vcodec libx264 -acodec libmp3lame -s 1920x1080 -r 15 temp.mp4
4.1 指定窗体
ffmpeg -f gdigrab -i title="Skype" -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)":audio="麦克风 (Realtek(R) Audio)" -vcodec libx264 -acodec libmp3lame -r 15 temp.mp4
https://www.cnblogs.com/bleachli/p/4494689.html
//Dshow设备 screen capture recorder 需要下载这个exe
https://sourceforge.net/projects/screencapturer/files/
ffmpeg -f dshow -i video="screen-capture-recorder" output.mkv
ffmpeg -f dshow -i video="HIK 2K Camera" -f dshow -i audio="麦克风 (Realtek(R) Audio)" -vcodec libx264 -acodec aac -strict -2 mycamera.mkv
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -vcodec libx264 -acodec libmp3lame -s 1920x1080 -r 15 temp.mkv
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -vcodec libx264 -acodec libmp3lame -r 15 temp.mkv
ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" -vcodec libx264 -acodec libmp3lame -s 1920x1080 -r 15 temp.mp4
ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" -vcodec libvpx-vp9 -acodec libmp3lame -s 1280x720 -r 15 temp.mkv
原文链接:https://blog.csdn.net/juedno/article/details/80731733
区域录像 ( 起点:100,60 width:600 width:480 )
ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" -vcodec libx264 -acodec libmp3lame -video_size 600x480 -offset_x 100 -offset_y 60 -r 15 e:/temp/temp.mkv
4.2 流转发
ffmpeg -re -i input.flv -c copy -f flv rtmp://127.0.0.1/myapp
ffplay rtmp://127.0.0.1:1935/myapp
ffmpeg -re -i chunwan.h264 -vcodec copy -f h264 udp://233.233.233.223:6666
ffmpeg -f gdigrab -i desktop -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)":audio="麦克风 (Realtek(R) Audio)" -vcodec libx264 -acodec libmp3lame -s 1920x1080 -r 15 temp.mp4
rtmp://127.0.0.1/myapp/test
ffmpeg -f gdigrab -i desktop -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)":audio="麦克风 (Realtek(R) Audio)" -vcodec libx264 -preset:v ultrafast -pix_fmt yuv420p -acodec aac -f flv rtmp://127.0.0.1/myapp
ffmpeg -f gdigrab -i desktop -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)" -vcodec libx264 -preset:v ultrafast -pix_fmt yuv420p -acodec aac -f rtp rtp://rtp://127.0.0.1:8000>test.sdp
ffmpeg -re -i chunwan.h264 -vcodec copy -f rtp rtp://rtp://127.0.0.1:8000>test.sdp
ffmpeg.exe
-y
-f dshow
-i audio="麦克风 (HIK 2K Camera-Audio)":audio="麦克风 (Realtek(R) Audio)"
-f gdigrab
-draw_mouse 0
-i title="Google Chrome"
-framerate 30
-vcodec libx264
-crf 0
-preset ultrafast
-acodec pcm_s16le
output.flv
--黑屏
ffmpeg.exe -y -f dshow -i audio="麦克风 (HIK 2K Camera-Audio)":audio="麦克风 (Realtek(R) Audio)" -f gdigrab -draw_mouse 0 -i title="Skype" -framerate 30 -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.flv