网络知识 娱乐 ffmpeg入门:常用命令分类

ffmpeg入门:常用命令分类

常用命令分类

ffmpeg入门:常用命令分类

今天我们学常用命令分类中的基本查询命令:

1. 基本查询命令

ffmpeg入门:常用命令分类

下面我们看看几个命令

1. version命令

ffmpeg入门:常用命令分类

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)

ffmpeg入门:常用命令分类

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.录制命令

  1. 录制屏幕视频 ffmpeg -f avfoundation -i 1 -r 30 out.yuv ffmpeg -f avfoundation -i1 -r 30 -pixel_format yuv420p out.yuv
  2. 录制音频 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
  3. 查找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入门:常用命令分类

分解与复用

修改封装格式

  • 保留编码格式 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入门:常用命令分类

分解与复用

滤镜实际上是对解码后的数据帧进行滤镜处理 过程如下:

ffmpeg入门:常用命令分类

裁剪命令

  • 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