你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

分享ffmpeg和ffplay相关命令的使用

[复制链接]
gaosmile 发布时间:2021-1-11 15:22
一 、前言:

大家周末好,今天继续开始更新音视频系列文章;今天主要给大家分享ffmpeg和ffplay相关命令的使用!废话不多说,直接肝!

二、ffmpeg命令汇总:1、ffmpeg工具:

ffmpeg工具主要分三个,从官网我们可以看到:

  • 微信图片_20210111152036.png
  • ffmpegHyper fast Autio and Video encoder)超快音视频编码器(类似于爱剪辑)。
  • ffplaySimple media player)简单媒体播放器
  • ffprobeSimple multimedia streams analyzer)简单多媒体流分析器
    + M0 y! |5 o9 ~- }- ~2 K

在上面官网图片里面中,如果大家要详细了解ffmpeg、ffplay、ffprobe三个工具的使用,可以点击进去,里面有非常详细的介绍!这里接下来我给大家总结一下这段时间我学习里面的一些常用命令,再加上一些视频播放演示,这样学习起来就不会太枯燥了.

2、ffmpeg命令使用总结

(1)ffmpeg命令查看帮助文档

  • 基本信息:ffmpeg -h
    7 R  v4 I  _( o* Y+ X2 m% i- d( }
Print help / information / capabilities:4 c$ N4 c, U$ z- e' C% K. U
-L                  show license
; D7 r2 W3 s* ]+ K' z. Q-h topic            show help
5 N* V0 x  B: c! e' A  O' k' q# {-? topic            show help7 S2 v4 H3 u' |6 t% [0 I7 o
-help topic         show help
2 m3 y. H: ~* w--help topic        show help* n9 W4 A! Q& f5 Z
-version            show version# a+ L; o& e# b# e
-buildconf          show build configuration7 n) F4 g, k+ l) Z+ x% G
-formats            show available formats
" c; V2 r$ K5 j9 k# ^8 N-muxers             show available muxers
( g' B. P: T* n5 {4 c! D+ u* l-demuxers           show available demuxers
/ v7 e0 G1 q0 `" U$ h-devices            show available devices
5 R7 {% d. S! ^" ]& }+ C5 J-codecs             show available codecs; M2 I# O6 @' M4 B
-decoders           show available decoders
6 P9 O! f+ f  t-encoders           show available encoders$ y9 i- g! x/ v, b0 n
-bsfs               show available bit stream filters. ^! O& y- S  H# a0 d1 N
-protocols          show available protocols' f1 o  C9 H/ O) O) L) y
-filters            show available filters# l/ e$ P, v! R( v/ T( H
-pix_fmts           show available pixel formats
- I! @. w. W5 |3 b9 W  ]+ ^# T  _-layouts            show standard channel layouts( w5 r" i# W0 O1 X# P% Y( V8 }& J
  • 高级信息:ffmpeg -h long) n6 Y9 o* \- x" i1 t0 N7 [
Global options (affect whole program instead of just one file:3 `* S+ f7 L" v8 d$ s. h8 T
-loglevel loglevel  set logging level
: o( P5 X4 |, ~6 F( m; b-v loglevel         set logging level9 \1 _3 {1 z; C8 q
-report             generate a report) T+ d. b& n* s* t
-max_alloc bytes    set maximum size of a single allocated block8 F9 j2 b* x) a  _3 \1 W
-y                  overwrite output files
0 x/ {/ t) T( s- B6 \3 j-n                  never overwrite output files
. m% h/ |5 k3 j3 M  Y1 o. Y# O" ~-ignore_unknown     Ignore unknown stream types
! l+ R% _/ V0 s3 r2 v-filter_threads     number of non-complex filter threads
4 `* K3 ]2 Q0 B5 c-filter_complex_threads  number of threads for -filter_complex6 S5 c! |% b) I: u
-stats              print progress report during encoding
. W1 Z" n3 g( T+ a( e-max_error_rate maximum error rate  ratio of errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.
+ b$ B/ W' j1 g4 z# Z( E-bits_per_raw_sample number  set the number of bits per raw sample- P. s  L2 {$ _7 m! [# c, c4 U
-vol volume         change audio volume (256=normal)
; W( _! m5 {3 O
  • 所有信息命令:ffmpeg -h full$ h. D" `  A# W7 {1 @
magicyuv AVOptions:
" n; S0 ]( P) ~0 K; G  -pred              <int>        E..V..... Prediction method (from 1 to 3) (default left)
, t9 G* W) W& l. P; V' ^$ d     left                         E..V.....
0 @! ]# I& j6 ?  l     gradient                     E..V.....
# Q( M$ _9 K  j% \. g9 X     median                       E..V.....9 z/ L. T& I0 V7 l7 c6 Y7 A
还有很多信息没有截取出来,这里只是一部分信息, M* _) V5 n+ D7 ~1 y% r8 s: U8 {

注意:我们可以看到上面的命令查询帮助信息打印出来太多了,不方便阅读,所以我们把它们都放在单独的一个日志文件里面,这样就方便查看阅读:

E:\音视频\test-av>ffmpeg -h > ffmpeg_h.log
  ?9 W0 t" h4 k) b$ E
+ w3 e0 {4 |( y5 x7 m+ XE:\音视频\test-av>ffmpeg -h long  > ffmpeg_h_long.log! x2 _4 i! Q+ i& s; x, y9 G9 o
) G. ?  b, y: b1 h9 l% ]& H
E:\音视频\test-av>ffmpeg -h full  > ffmpeg_h_full.log
$ j: l4 t" D( s2 T4 j* A2 L

最终就会在当前目录下生成三个日志文件:

微信图片_20210111152107.png

同时我们要注意,在ffplay和ffprobe里面,下面这两条命令就表示查看所有信息,这和ffmpeg有点差异:

ffplay -h
) r" m. ]6 T# k5 V, x8 @0 g
% O) ^: N8 G( \. b2 X$ \ffprobe -h$ ^# J. p; \2 ~! k5 C, M

(2)ffmpeg命令分类查询:

  • version:显示ffmpeg版本型号:
    $ ^$ I) r) L$ I* f6 q
E:\音视频\test-av>ffmpeg -version/ k1 m" t9 ]: D* O7 J
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
# I9 q  h; C0 q" i' I* P0 Ibuilt with gcc 9.1.1 (GCC) 201908071 t' _+ u  r7 a! M1 B5 P. `& E5 u/ M
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt% T4 o) {& t9 F( O
libavutil      56. 31.100 / 56. 31.100" v4 Y- w1 g& E8 }8 i+ T2 ]
libavcodec     58. 54.100 / 58. 54.100
4 p) _9 r  z# ^! Olibavformat    58. 29.100 / 58. 29.100# z/ X- k% ^! M# N; @, V6 l! r! [
libavdevice    58.  8.100 / 58.  8.1000 ?/ d! H1 i) m0 Q; u: B4 U" H
libavfilter     7. 57.100 /  7. 57.100
" h5 e4 ^6 S4 n2 f. J$ jlibswscale      5.  5.100 /  5.  5.100
! L$ W: j) N. q% {libswresample   3.  5.100 /  3.  5.100
' A0 A$ \/ e5 h4 G' g- a2 b: ulibpostproc    55.  5.100 / 55.  5.100) V; L( w- o# |
  • buildconf:显示编译配置:+ }+ T& F) m4 D* d& _. N
configuration:
7 h5 i/ t6 }; x" R0 d( t% l    --disable-static
' L+ w3 p% [7 m& I5 j/ s- l+ H    --enable-shared
- B# j4 X. o1 s    --enable-gpl: @8 O- J( Y  f7 e3 ]1 Q
    --enable-version3
( x* [9 g0 A9 e% i9 K2 Q    --enable-sdl2
. z: X+ B% x4 M1 n    --enable-fontconfig
; h4 x1 F4 y- R5 f% X7 X    --enable-gnutls" D- H; b, s1 ^- D- Q1 Q
    --enable-iconv
. h6 x, I: a5 L. N, _    --enable-libass9 t5 E  L. [2 Q% c- l* g
    --enable-libdav1d& H( v  @& f7 d
    --enable-libbluray
  }6 J5 u8 }$ i2 g- m" I* Y5 X    --enable-libfreetype- e' c2 X+ T6 b
    --enable-libmp3lame
# h  L& N( J8 M, j. g. F6 M    --enable-libopencore-amrnb
2 G( e8 }) {# H8 H( q    --enable-libopencore-amrwb
9 _5 O( M+ N# L3 s" o    --enable-libopenjpeg& A& ^2 d; ^# a. V' r" t+ {) f
    --enable-libopus
' Y: K6 f/ x. w! F    --enable-libshine
5 w& X) N: L  N  Q" P2 z7 t    --enable-libsnappy0 F6 }9 }  P; [5 q: A
    --enable-libsoxr7 R7 A3 w1 V% n
    --enable-libtheora4 T9 \* s7 N# a
    --enable-libtwolame  F; L. d( h2 p* D; ^$ D  g$ D
    --enable-libvpx; B- Y+ y! }# L7 l7 }
    --enable-libwavpack9 U" [6 A. k) d! P9 H
    --enable-libwebp
7 I4 r4 k6 u; X    --enable-libx2649 W) e3 N* u# c9 h
    --enable-libx265
3 R: J# q* X8 P; W: i4 V  C& H: e    --enable-libxml2" ]$ Z# T/ [1 E' c1 c
    --enable-libzimg
7 s) S/ _: i1 `2 [4 J# \8 g    --enable-lzma
. m7 b( A! h1 r  s( o/ b    --enable-zlib
5 C0 i" }4 H0 F4 g2 ?# r: Y$ ~    --enable-gmp
; |/ f& R# r! X0 L* l9 Y3 b    --enable-libvidstab
& ?. L* w' J$ }    --enable-libvorbis
; v6 f6 }5 I1 t0 @- q    --enable-libvo-amrwbenc
' q( N4 a3 O0 K3 ?: a! V! i    --enable-libmysofa# k8 ?# {/ G3 B- C8 ~
    --enable-libspeex% X! _% C; H2 N/ e( ^" N
    --enable-libxvid! g4 V" V8 h9 |5 a/ }- Q
    --enable-libaom
9 k3 y! L) R4 r( ]; ~1 e" C    --enable-libmfx
$ v3 H* K1 w7 ]  b) ?$ j    --enable-amf! u5 J  J7 q. ^" B
    --enable-ffnvcodec
; l2 O. T* A9 K; m    --enable-cuvid2 O: y$ b" W" M
    --enable-d3d11va
4 l' i( _6 |9 n4 e& F1 b    --enable-nvenc
8 a2 L; J  T; X    --enable-nvdec9 O# Z( }  C( q
    --enable-dxva2
$ ~- g8 G" z( X' I5 k: u6 s# r1 u    --enable-avisynth
1 Y% }* U( {# ^$ ^! R% R: z& t6 D    --enable-libopenmpt( p7 q6 [0 L9 _: _; z+ ^% o
  • formats:显示可用格式(muxers+demuxers),muxers表示显示可用复用器;demuxers表示显示可用解复用器:
    " C' e# ^& x3 S9 Y, p  L, X( {
File formats:
/ W, R  @) H5 C4 _/ P D. = Demuxing supported
! S% B1 n6 z# f: s) ]2 ^( U' q .E = Muxing supported
* Q- j) j5 T; i9 s7 M

当然我们可以专门查找flv格式的文件格式:

E:\音视频\test-av>ffmpeg -muxers | findstr flv8 R$ x% \# z, K
  E flv             FLV (Flash Video)$ k+ A( c& C3 U' V7 R. X* a& F
  
2 l& H+ f6 \9 l0 F' \3 ]! [
E:\音视频\test-av>ffmpeg -demuxers | findstr flv
% U# G8 ^( x( B D  flv             FLV (Flash Video)" g" e9 V; q& L6 d
D  live_flv        live RTMP FLV (Flash Video)5 \* u8 m* o* O4 r
  • codecs:显示可用编解码器(-decoders表示显示可用解码器;-encoders表示显示可用编码器),下面是打印查找的一部分信息
    " [3 a. Y2 Y6 m" F
D.VI.S 012v                 Uncompressed 4:2:2 10-bit
+ E7 H' h: E; } D.V.L. 4xm                  4X Movie
& A# @3 \" p$ }. k" N0 r8 [ D.VI.S 8bps                 QuickTime 8BPS video
7 ^; o" a% P* f' o4 @ .EVIL. a64_multi            Multicolor charset for Commodore 64 (encoders: a64multi )2 J8 q+ C; |3 p2 S
.EVIL. a64_multi5           Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5 )8 @: N! `! ~+ @& ~! t% S
D.V..S aasc                 Autodesk RLE/ P" y' W5 ]' i+ ]& l7 J" I1 ~0 Y1 l4 ]. C
D.V.L. agm                  Amuse Graphics Movie
& K, V+ A3 u7 A  f  l. L# S D.VIL. aic                  Apple Intermediate Codec
% U8 [5 Q* K" x& d2 w DEVI.S alias_pix            Alias/Wavefront PIX image
1 V8 f5 f8 }* _ DEVIL. amv                  AMV Video. @6 Z% ?% z% ^7 v2 u" I9 X1 q; c
D.V.L. anm                  Deluxe Paint Animation
& P6 q6 s0 G. Q$ A" R$ h. A D.V.L. ansi                 ASCII/ANSI art  p! C/ k8 e; H' f  I5 q- i
  • bsfs:显示可用比特流filter,打印信息比较多,截取了一部分,后期的命令打印都只截取一部分:4 e% [3 z9 h6 K4 ?0 \0 F4 |" |
Bitstream filters:" w0 U' _* q# ?
aac_adtstoasc, j" D5 }. R- C5 L
av1_frame_split
9 z6 d" x/ {- K, T$ C; Y5 Z) V, P! oav1_metadata
" N. V1 V- C: g' Rchomp& P5 e0 l+ |7 u) }
dump_extra8 `& U  o, u% `
dca_core& W+ \% }. \8 ]2 M6 X0 w5 P1 v( C
eac3_core
  x6 L' r$ t& Nextract_extradata* b9 t: M  _5 X$ W
filter_units
7 q) w; `) `( j3 [; wh264_metadata  P* @6 `$ e& x* P
h264_mp4toannexb. Y3 C) M, U. u$ U0 F
h264_redundant_pps$ O; u- {5 S$ X- u
hapqa_extract5 v+ w7 T0 J3 R) D9 D7 B( o9 R
hevc_metadata# [. _* i* w5 f! W
hevc_mp4toannexb
4 A4 |. `, U( x8 I3 Yimxdump
) O% R7 g  `, E' k% y. Qmjpeg2jpeg
0 L' q8 A2 c6 L2 l3 y+ F1 C- ~: hmjpegadump
% R; z' Y. }0 t( @  J* ^" o' {mp3decomp2 c7 [4 I" }; e+ |0 P! y
mpeg2_metadata+ y9 I7 x- P! F) T1 B$ n
mpeg4_unpack_bframes
- k0 O5 L5 c! u$ c9 e3 amov2textsub
9 J$ N3 I* C2 L( Wnoise
0 N7 a+ C; t; {3 J3 rnull: }. i( o6 o+ S% P
prores_metadata
9 V3 @6 g/ Q# y( ^0 R" \7 h% Vremove_extra
! E' A$ b7 C$ v& k, [text2movsub
; R' h( b. F; ntrace_headers
) U; W! F8 d) n7 B7 _# y! Struehd_core
$ C" E( M! M7 d! A5 f( N$ qvp9_metadata% r% [. J+ z: o5 L6 l% k
vp9_raw_reorder
% a- }; _9 y4 v: l1 n! xvp9_superframe
" ~& f( u% {' \vp9_superframe_split
- ~: l" z) W6 |9 n/ H+ }, P, E% Y% G9 }
  • protocols:显示可用的协议:  u" Y1 ?3 w! y( F! e+ }: m
Supported file protocols:
6 C& U8 {4 u' T, f  SInput:. c6 R2 o+ l* T8 `7 h
  async5 I% |5 p* e* ^! {7 ^: e- z1 F* F- u+ B7 }
  bluray$ m& t+ ~0 F  m1 ^0 s# [- g
  cache
/ h% v' o) w  S+ ]! c! V+ h. R% _  concat
: ]5 ]+ m1 Q( G4 A  [/ g  crypto
, ?; _& ?( s3 o1 ?, I  data
" ?  O6 h2 Y4 k$ d. k' v& V( V  ffrtmpcrypt* t. f# V0 G$ [6 g$ P! e
  ffrtmphttp
+ S! |, |8 l2 u3 }  file
6 D' |  K3 l/ o& A4 K  ftp# y" l7 F( c0 A3 [- C( R0 u
  gopher5 H  M. c' f' N" h, l
  hls6 V% q# `( I/ [0 K
  http) e7 J3 {8 w. Q
  httpproxy
% P6 P& T( b$ v9 ?& y  ^  https& u/ e# Q+ u: y4 L- J; N
  mmsh
( ?6 ]$ q1 O# e3 W  mmst
4 K4 Z: V, ?' e5 y. l  pipe
% R, }0 r& t+ l+ u( l( e  rtmp; d, k" S6 s( ~7 Q/ j3 @$ `6 E; {
  rtmpe* B! o3 ^/ \2 x1 P0 B
  rtmps
( f, {) ^2 W- g4 i  rtmpt
: ~  R7 L. m8 A9 s) d) S  rtmpte" ?+ A  K* C/ d  T% D
  rtmpts
2 V9 x' \" t7 K8 Q4 z8 [  rtp) X3 J: Y& ~; S3 `% a, g& O& |
  srtp/ p3 Y0 j  Y. {% o% e
  subfile6 a' C: G% u  b$ K3 s7 u* M
  tcp+ ~4 {( D9 s  p" C
  tls" y' z# f; b: C5 }
  udp/ f2 P) ], E, Y- Y
  udplite
) Z8 s% s8 S- K# zOutput:
- ~% z1 D7 o* [6 S" j/ H3 Z: Z' a  crypto
/ |, V$ x  I: L% a$ G  ffrtmpcrypt$ ~' k% }0 h, C: A2 w. e6 `2 w2 `
  ffrtmphttp3 c) u5 d. T8 ]$ k* ~: ?- m
  file; Y+ W) b/ l  S& W9 w( l8 v
  ftp
5 F) N5 m! \7 x0 T& p  a  gopher
* d6 `3 l8 R" b% U4 c6 u  http
7 C- a* c3 {# N) E  httpproxy
1 G5 ?' W( _: U+ x- w# Z  https
8 h6 m0 F" z$ N/ L. O4 \; D! I  icecast: O& |# b) O4 Y) F. B: j0 A3 s" C
  md5( `. d: T. \. K1 U5 ^  {8 J
  pipe
& s+ k& V8 f. }3 n' W# \' U$ B' i  prompeg1 y$ z( V: H7 a$ d% K
  rtmp0 O6 e% J8 w6 u; W; S: J
  rtmpe/ b$ ]/ s, ~6 d" ?) ?1 I( U
  rtmps( Z* y6 X3 C$ u: w5 R
  rtmpt3 Z1 P! q! S) |
  rtmpte
* K% J" t7 P7 y2 ]/ q7 C, ?: H  rtmpts
, E& T5 e' l+ C  rtp
0 n! Q: Z1 W/ j3 N) c' [" ]  srtp
/ Z. Y* K- K2 f8 \+ S8 j3 f0 Q; m  tee, G) e0 M  l$ V+ F$ p+ \
  tcp+ q: [  Q2 |9 i( u+ Y
  tls
7 p2 r1 Y8 j8 \& t: u$ O$ A  udp0 r0 {0 v7 j) U# I3 M
  udplite
8 O- ^& m' S& J" n# F$ r2 J" \# R
  • filters:显示可用的过滤器:5 y/ n5 X" q. D3 z' I) c

8 p' ]* d3 f$ k) |E:\音视频\test-av>ffmpeg -filters
; O( r, v! R" P( ]0 CFilters:  c, ^0 j- a- l' a
  T.. = Timeline support
7 E' A7 R8 F5 ]  .S. = Slice threading0 V8 A0 e! }  U) R- ]( _* [
  ..C = Command support
: y9 y& o! V% E- F7 T  R* b  A = Audio input/output. `6 ]7 V1 A/ r. I+ [
  V = Video input/output
9 p9 A3 E& u- A! t  N = Dynamic number and/or type of input/output8 G- U: P8 u- {9 I6 ]
  | = Source or sink filter
$ M" B$ W  O9 z6 `0 z. H6 u5 K
  • pix_fmts:显示可用的像素格式
    5 t: J& w9 a, L  \2 U7 e3 }8 m4 [
E:\音视频\test-av>ffmpeg -pix_fmts3 L# }! s$ j8 K' K7 W( t' ?& a" _9 N
Pixel formats:9 w: [# Z- r: j% D* D; s
I.... = Supported Input  format for conversion
4 Q+ T  q; g' X% ^3 h! T7 m.O... = Supported Output format for conversion
5 }) o; A* G6 ^' A' h..H.. = Hardware accelerated format
' r! v) K+ b9 g7 C6 [...P. = Paletted format: L. y' ]- d! Y# S- r8 W* g0 s2 U
....B = Bitstream format8 {; |6 P4 n- M1 \7 q  ~- ?+ K% d' q
FLAGS NAME            NB_COMPONENTS BITS_PER_PIXEL
) J! T" S- L+ A2 ?, W; x-----
% Q: D5 E, @5 l
  • layouts:显示标准声道名称$ a! ]* i/ D8 N- K8 x+ K
E:\音视频\test-av>ffmpeg -layouts
8 |6 q! Q+ W9 @Individual channels:
$ [) a6 Q' b  ?+ j* v/ g0 D) nNAME           DESCRIPTION. ^4 f& ~. N5 P7 R
FL             front left, D3 M$ m1 s3 E9 C$ L( W/ Y6 C6 {6 E
FR             front right
. L( D8 Z/ Y  m. f1 o/ rFC             front center
) ?( u3 `+ L! gLFE            low frequency
$ J1 X  Z' e/ \* tBL             back left
7 |2 O% K% R! m2 b. S  UBR             back right/ [, e) I# L% i$ U$ ]
FLC            front left-of-center/ D, W$ l: `: C4 S7 O6 L1 W
FRC            front right-of-center
8 D! t' n1 I2 L- b2 ~BC             back center
& \* y  b7 U5 `* g$ a0 }( hSL             side left
; L$ l4 e: V) RSR             side right% b# I1 ~. S: Q, g2 X
TC             top center
6 F* B# S0 G3 M' h5 f6 j- ITFL            top front left
( Z' `" N1 m' q! cTFC            top front center) s  l. K6 w% O6 M" g
TFR            top front right
# {) |4 k  Z% zTBL            top back left
* r3 D$ }% R" X  _2 z9 s4 i4 y) BTBC            top back center- @; c" l; E+ v# w; W, A5 k
TBR            top back right
) S9 q, P. i7 C/ M" j# TDL             downmix left" G& U9 B3 ^$ {! d; V+ O
DR             downmix right' P4 v8 F) c+ [# t
WL             wide left4 ~% v: j3 |- Z
WR             wide right
% l; ?; D7 l( [, |& d! t! @* `4 qSDL            surround direct left: o, y3 x* B! ^: Y& A1 n- F
SDR            surround direct right! C6 o6 [7 O! T+ ~0 g* h! A  W
LFE2           low frequency 2
- c7 }3 n, s2 s8 B  k0 d* i
* c5 t8 T) K( Z. I$ f. R* WStandard channel layouts:6 w- H0 |# c  Z" ?* G  f7 D6 W# }% g
NAME           DECOMPOSITION, j# g5 p" a- B$ @* C+ j
mono           FC
5 |5 @( `- N6 n3 U) Kstereo         FL+FR+ M8 a5 _/ H8 R$ `& ~0 y% M
2.1            FL+FR+LFE) o+ H' c3 g2 p, D) m) L& U
3.0            FL+FR+FC
, H/ P/ g: Z/ `' ~; O9 A3.0(back)      FL+FR+BC+ {' a, R& w& R) Q, W
4.0            FL+FR+FC+BC1 F, I8 h+ h5 Q. C$ {
quad           FL+FR+BL+BR5 ^4 d$ |- ^! N. j
quad(side)     FL+FR+SL+SR
& R, [% [5 H3 F0 N  Q# t3 k
  • sample_fmts:显示可用的音频采样格式:- d" ?* D; a+ t, y8 X5 ?/ T7 u
E:\音视频\test-av>ffmpeg -sample_fmts9 j2 q5 u3 x. M1 f& i' B9 |  A
name   depth
. M1 x$ j1 k6 Bu8        8
# `8 P: Z- }! K; ?& J3 ^" ^s16      16' y* K5 g2 x( X  s* m
s32      32
: K1 l5 i1 c5 A6 ?+ l3 q! Uflt      32: i% y, q0 w+ E0 ~: ], b- a
dbl      64* u$ T1 G- L0 j7 Y$ i) _
u8p       8+ }: Y% c/ N* y; _, [5 N5 y
s16p     16- |! E; Z, y4 p. y; G  Y. R
s32p     32
$ x" ^& Y, ^' J% @5 Wfltp     32% ?1 u' A6 ~( V: _/ x4 ?
dblp     64
- E9 u, L0 {9 I2 @  D8 M  ls64      64- L6 _# r) {; E0 R- C
s64p     64' Y: q$ E) o/ N. t7 F+ L
  • colors:显示可用的颜色名称:
    ! r/ s! R% o7 \# ]7 n' Y8 d: n$ f
E:\音视频\test-av>ffmpeg -colors
# y. O! S6 A; k( n8 S9 v5 uname                             #RRGGBB
. O+ w3 e) @, `9 {AliceBlue                        #f0f8ff
; y- Y+ w! I1 F0 S$ V# IAntiqueWhite                     #faebd7* r2 C* @; ]: I
Aqua                             #00ffff
1 Z6 c% k; V$ J+ @. s9 O3 AAquamarine                       #7fffd4
, y+ F2 y, U4 h0 y' SAzure                            #f0ffff
! Z" t: @; S) G$ i, j; O; TBeige                            #f5f5dc
8 \" y7 ^2 H' R" m$ R/ }" P7 KBisque                           #ffe4c43 ~) V3 [; M2 i. m
Black                            #000000
: R# s; D2 H' T$ u! i, G! i+ KBlanchedAlmond                   #ffebcd. j9 L3 A+ \& Y: a2 A" @4 h
Blue                             #0000ff) Z. V' M! k% m8 ^- v
BlueViolet                       #8a2be2
9 A- l5 d4 U$ U0 dBrown                            #a52a2a
6 I) s: g" h- C% m& ]* fBurlyWood                        #deb887
: ^( H/ P  ?9 F0 C* x
三、ffmpeg音视频处理流程:

我们可以去ffmpeg官网介绍里面看到它的处理流程图:

微信图片_20210111152110.png

为了说明这个处理过程,我们以下面一条命令来举例说明:

ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 test_1280x720.flv
+ V3 t3 y) M, j( L- T4 }5 z

说明:

  • (input file)这里输入文件为test_1920x1080.mp4格式的视频文件格式
  • demuxer:通过可用解复用器把输入文件,也就是音视频文件,分离出音频包和视频包
  • 编码数据包;通过上面的demuxr,就得到了音频包和视频包
  • decoder:然后通过解码器解码后,就生成了解码数据帧,这里要通过过滤处理,怎样过滤处理具体可以看官方的说明,这里暂时不说明,如果有时间,研究完官方说明,再来讲
  • encoder:过滤处理完后的解码数据帧通过编码器处理后,会生成编码数据包
  • muxer:编码数据包再次通过可用复用器处理,就生成了一个新格式的音视频文件,比如这里是test_1280x720.flv
    7 U& Y4 v) b3 G
四、总结:

暂时先分享总结这些命令,更多命令学习可以参考官网手册来学习:

https://www.ffmpeg.org/ffmpeg.html
$ I; t' V; V7 d( d8 v: {5 y

由于篇幅原因,本次就暂时不分享关于ffplay来演示视频播放了,演示效果如下:

微信图片_20210111152113.png
1 N1 U/ L1 T1 w3 E* I6 ~8 u8 C5 f9 i  k- S
赞 收藏 评论1 发布时间:2021-1-11 15:22

举报

1个回答
七哥 回答时间:2021-1-12 12:06:46
对ffmpeg和ffplay用法是云里雾里,只从网上扒了几条命令用用。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版