常用命令分类
今天我们学常用命令分类中的基本查询命令:
1. 基本查询命令
下面我们看看几个命令
1. version命令
2. demuxers 命令 查询所有可支持的解复用格式
- ffmpeg -demuxers
- ffmpeg -demuxers | more 分屏查看 下面是一部分可支持的解复用格式
File formats:n D. = Demuxing supportedn .E = Muxing supportedn --n D 3dostr 3DO STRn D 4xm 4X Technologiesn D aa Audible AA format filesn D aac raw ADTS AAC (Advanced Audio Coding)n D ac3 raw AC-3n D acm Interplay ACMn D act ACT Voice file formatn D adf Artworx Data Formatn D adp ADPn D ads Sony PS2 ADSn D adx CRI ADXn D aea MD STUDIO audion D afc AFCn D aiff Audio IFFn D aix CRI AIXn D alaw PCM A-lawn D alias_pix Alias/Wavefront PIX imagen D alp LEGO Racers ALPn
3.muxers 复用命令
ffmpeg -muxers
ffmpeg -muxers | more
File formats:n D. = Demuxing supportedn .E = Muxing supportedn --n E 3g2 3GP2 (3GPP2 file format)n E 3gp 3GP (3GPP file format)n E a64 a64 - video for Commodore 64n E ac3 raw AC-3n E adts ADTS AAC (Advanced Audio Coding)n E adx CRI ADXn E aiff Audio IFFn E alaw PCM A-lawn E amr 3GPP AMRn E apng Animated Portable Network Graphicsn E aptx raw aptX (Audio Processing Technology for Bluetooth)n E aptx_hd raw aptX HD (Audio Processing Technology for Bluetooth)n E asf ASF (Advanced / Active Streaming Format)n E asf_stream ASF (Advanced / Active Streaming Format)n E ass SSA (SubStation Alpha) subtitlen E ast AST (Audio Stream)n E au Sun AUn
C++音视频开发学习资料:点击领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)
4.devices命令 显示可用的设备
ffmpeg -devices
Devices:n D. = Demuxing supportedn .E = Muxing supportedn --n D avfoundation AVFoundation input devicen D lavfi Libavfilter virtual input devicen E sdl,sdl2 SDL2 output device
5.codecs 命令 所有的编解码器
ffmpeg -codecs
Codecs:n D..... = Decoding supported D表示解码器n .E.... = Encoding supported E表示编码器n ..V... = Video codec V:视频编解码n ..A... = Audio codec A:音频编解码n ..S... = Subtitle codec S:字幕n ...I.. = Intra frame-only codec I:帧内预测压缩编码n ....L. = Lossy compression L :有损压缩n .....S = Lossless compression S:无损压缩n -------n D.VI.S 012v Uncompressed 4:2:2 10-bitn D.V.L. 4xm 4X Movien D.VI.S 8bps QuickTime 8BPS videon .EVIL. a64_multi Multicolor charset for Commodore 64 (encoders: a64multi )n .EVIL. a64_multi5 Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5 )n D.V..S aasc Autodesk RLEn D.V.L. agm Amuse Graphics Movien D.VIL. aic Apple Intermediate Codecn DEVI.S alias_pix Alias/Wavefront PIX imagen DEVIL. amv AMV Videon D.V.L. anm Deluxe Paint Animationn
我们查找一下264编码
ffmpeg -codecs | grep 264
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb h264_videotoolbox )
6. formats命令 支持的文件格式
ffmpeg -formats
File formats:n D. = Demuxing supportedn .E = Muxing supportedn --n D 3dostr 3DO STRn E 3g2 3GP2 (3GPP2 file format)n E 3gp 3GP (3GPP file format)n D 4xm 4X Technologiesn E a64 a64 - video for Commodore 64n D aa Audible AA format filesn D aac raw ADTS AAC (Advanced Audio Coding)n DE ac3 raw AC-3n D acm Interplay ACMn D act ACT Voice file formatn D adf Artworx Data Formatn D adp ADPn D ads Sony PS2 ADSn E adts ADTS AAC (Advanced Audio Coding)n DE adx CRI ADXn D aea MD STUDIO audion D afc AFCn DE aiff Audio IFFnn
查看是否支持MP3格式
ffmpeg -formats | grep mp3
DE mp3 MP3 (MPEG audio layer 3)
7.bsfs命令 所有的比特流过滤器
ffmpeg -bsfs
Bitstream filters:naac_adtstoascnav1_frame_mergenav1_frame_splitnav1_metadatanchompndump_extrandca_coreneac3_corenextract_extradatanfilter_unitsnh264_metadatanh264_mp4toannexbnh264_redundant_ppsnhapqa_extractnhevc_metadatanhevc_mp4toannexbnimxdumpnmjpeg2jpegnmjpegadumpnmp3decompnmpeg2_metadatanmpeg4_unpack_bframesnmov2textsubnnoisennullnopus_metadatanpcm_rechunknprores_metadatanremove_extrantext2movsubntrace_headersntruehd_corenvp9_metadatanvp9_raw_reordernvp9_superframenvp9_superframe_splitn
2.录制命令
- 录制屏幕视频 ffmpeg -f avfoundation -i 1 -r 30 out.yuv ffmpeg -f avfoundation -i1 -r 30 -pixel_format yuv420p out.yuv
- 录制音频 ffmpeg -f avfoundation -i :0 out.wav ffmpeg -f avfoundation -i :0 -sample_rate 44100 -channels 2 out.wav ffmpeg -f avfoundation -i :0 -ar 44100 -ac 2 out.wav
- 查找avfoundation库下支持的设备 ffmpeg -f avfoundation -list_devices true -i ""
avfoundation库下支持的设备n[AVFoundation indev @ 0x7fb857609780] AVFoundation video devices:n[AVFoundation indev @ 0x7fb857609780] [0] FaceTime高清摄像头(内建)n[AVFoundation indev @ 0x7fb857609780] [1] Capture screen 0n[AVFoundation indev @ 0x7fb857609780] AVFoundation audio devices:n[AVFoundation indev @ 0x7fb857609780] [0] 外置麦克风n[AVFoundation indev @ 0x7fb857609780] [1] MacBook Pro麦克风
4.播放视频
ffmpeg -video_size 2880x1800 -pixel_format uyvy422 out.yuv
5.播放音频
ffmpeg out.wav
3.分解与复用命令
分解与复用
修改封装格式
- 保留编码格式 ffmpeg -i input.mp4 -vcodec copy -acodec copy out.flv
抽取视频
- 保留编码格式 ffmpeg -i input.mp4 -vcodec copy -an outcopy.h264
- 强制格式 ffmpeg -i input.mp4 -vcodec libx264 -an out.h264
C++音视频开发学习资料:点击领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)
抽取音频
- 保留编码格式 ffmpeg -i input.mp4 -vn -acodec copy outcopy.aac
- 强制格式 ffmpeg -i input.mp4 -vn -acodec libmp3lame out.mp3
提取像素格式和PCM数据 抽取YUV
- 数据分辨率和源视频一致 ffmpeg -i input.mp4 out.yuv
- 分辨率转为320x240 ffmpeg -i input.mp4 -video_size 320x240 out.yuv
提取RGB
ffmpeg -i input.mp4 -pixel_format rgb24 out.rgb
RGB和YUV之间的转换
ffmpeg -pixel_format yuv420p -video_size 960x544 -i input.yuv -pixel_format rgb24 out.rgb
抽取PCM
ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
播放pcm ffplay -ar 44100 -ac 2 -f s16le out.pcm
4.处理原始数据命令
抽取YUV
ffmpeg -i input.mp4 -an -vcodec rawvideo -pixel_format yuv420p out.yuv
抽取PCM
ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
5.滤镜命令
在学滤镜命令之前 我们先了解一下分解与复用过程
分解与复用
滤镜实际上是对解码后的数据帧进行滤镜处理 过程如下:
裁剪命令
- ffmpeg -i input.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4 crop格式: crop=out_w:out_h:x:y
6.裁剪与合并命令
裁剪命令
- ffmpeg -i input.mp4 -ss 00:00:00 -t 10 out.mp4
合并命令
- ffmpeg -f concat -i input.txt out.mp4
7. 图片、视频互转命令
视频转图片
- ffmpeg -i input.mp4 -r 1 -f image2 image-%3d.jpeg
图片转视频
- ffmpeg -i image-%3d.jpeg out.mp4
直播相关命令 推流命令
- ffmpeg -re -i input.mp4 -c copy -f flv rtmp://......
拉流命令
- ffmpeg -i rtmp://.... -c copy out.mp4