ffmpeg -i input.mp4 output.avi
ffmpeg -i input.mp4 -f avi output.dat
可以使用diff 查看两者的输出,Output #0 基本重要信息相同。
ffplay out.mp3
ffplay 444.mp4 //都可以直接打开相应的文件
ffprobe -show_streams output.mp4 //可以分析媒体文件的信息
ffmpeg -version //查看对应ffmepg的版本
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
configuration: --disable-debug --enable-libx264 --enable-libx265 --enable-gpl --enable-shared
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
./configure --help
./configure --list-encoders //列出所支持的编码器
./configure --list-decoders //列出支持的解码器
./configure --list-muxers //列出所支持的封装
./configure --list-demuxers //列出所支持的解封装
./configure --list-protocols //列出支持的通信协议
./configure --help 可以查看所需要的第三方库,然后通过增加对应的编译参数选项进行支持。
External library support:
--enable-avisynth enable reading of AviSynth script files [no]
--disable-bzlib disable bzlib [autodetect]
--enable-chromaprint enable audio fingerprinting with chromaprint [no]
--enable-fontconfig enable fontconfig, useful for drawtext filter [no]
--enable-frei0r enable frei0r video filtering [no]
--enable-gcrypt enable gcrypt, needed for rtmp(t)e support
if openssl, librtmp or gmp is not used [no]
--enable-gmp enable gmp, needed for rtmp(t)e support
if openssl or librtmp is not used [no]
--enable-gnutls enable gnutls, needed for https support
if openssl is not used [no]
--disable-iconv disable iconv [autodetect]
--enable-ladspa enable LADSPA audio filtering [no]
--enable-libass enable libass subtitles rendering,
needed for subtitles and ass filter [no]
--enable-libbluray enable BluRay reading using libbluray [no]
--enable-libbs2b enable bs2b DSP library [no]
--enable-libcaca enable textual display using libcaca [no]
--enable-libcelt enable CELT decoding via libcelt [no]
--enable-libcdio enable audio CD grabbing with libcdio [no]
--enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
and libraw1394 [no]
--enable-libdcadec enable DCA decoding via libdcadec [no]
--enable-libfaac enable AAC encoding via libfaac [no]
--enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
--enable-libflite enable flite (voice synthesis) support via libflite [no]
--enable-libfreetype enable libfreetype, needed for drawtext filter [no]
--enable-libfribidi enable libfribidi, improves drawtext filter [no]
--enable-libgme enable Game Music Emu via libgme [no]
--enable-libgsm enable GSM de/encoding via libgsm [no]
--enable-libiec61883 enable iec61883 via libiec61883 [no]
--enable-libilbc enable iLBC de/encoding via libilbc [no]
--enable-libkvazaar enable HEVC encoding via libkvazaar [no]
--enable-libmfx enable HW acceleration through libmfx
--enable-libmodplug enable ModPlug via libmodplug [no]
--enable-libmp3lame enable MP3 encoding via libmp3lame [no]
--enable-libnut enable NUT (de)muxing via libnut,
native (de)muxer exists [no]
--enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no
]
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv [no]
--enable-libopenh264 enable H.264 encoding via OpenH264 [no]
--enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
--enable-libopus enable Opus de/encoding via libopus [no]
--enable-libpulse enable Pulseaudio input via libpulse [no]
--enable-librubberband enable rubberband needed for rubberband filter [no]
--enable-librtmp enable RTMP[E] support via librtmp [no]
--enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
--enable-libshine enable fixed-point MP3 encoding via libshine [no]
--enable-libsmbclient enable Samba protocol via libsmbclient [no]
--enable-libsnappy enable Snappy compression, needed for hap encoding [no]
--enable-libsoxr enable Include libsoxr resampling [no]
--enable-libspeex enable Speex de/encoding via libspeex [no]
--enable-libssh enable SFTP protocol via libssh [no]
--enable-libtesseract enable Tesseract, needed for ocr filter [no]
--enable-libtheora enable Theora encoding via libtheora [no]
--enable-libtwolame enable MP2 encoding via libtwolame [no]
--enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no]
--enable-libv4l2 enable libv4l2/v4l-utils [no]
--enable-libvidstab enable video stabilization using vid.stab [no]
--enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
--enable-libvorbis enable Vorbis en/decoding via libvorbis,
native implementation exists [no]
--enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no]
--enable-libwavpack enable wavpack encoding via libwavpack [no]
--enable-libwebp enable WebP encoding via libwebp [no]
--enable-libx264 enable H.264 encoding via x264 [no]
--enable-libx265 enable HEVC encoding via x265 [no]
--enable-libxavs enable AVS encoding via xavs [no]
--enable-libxcb enable X11 grabbing using XCB [autodetect]
--enable-libxcb-shm enable X11 grabbing shm communication [autodetect]
--enable-libxcb-xfixes enable X11 grabbing mouse rendering [autodetect]
--enable-libxcb-shape enable X11 grabbing shape rendering [autodetect]
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
--enable-libzimg enable z.lib, needed for zscale filter [no]
--enable-libzmq enable message passing via libzmq [no]
--enable-libzvbi enable teletext support via libzvbi [no]
--disable-lzma disable lzma [autodetect]
--enable-decklink enable Blackmagic DeckLink I/O support [no]
--enable-mmal enable decoding via MMAL [no]
--enable-netcdf enable NetCDF, needed for sofalizer filter [no]
--enable-nvenc enable NVIDIA NVENC support [no]
--enable-openal enable OpenAL 1.1 capture support [no]
--enable-opencl enable OpenCL code
--enable-opengl enable OpenGL rendering [no]
--enable-openssl enable openssl, needed for https support
if gnutls is not used [no]
--disable-schannel disable SChannel SSP, needed for TLS support on
Windows if openssl and gnutls are not used [autodetect]
--disable-sdl disable sdl [autodetect]
--disable-securetransport disable Secure Transport, needed for TLS support
on OSX if openssl and gnutls are not used [autodetect]
--enable-x11grab enable X11 grabbing (legacy) [no]
--disable-xlib disable xlib [autodetect]
--disable-zlib disable zlib [autodetect]
同时也支持很多的外部库。
外部库可以通过configure进行定制,在编译好的ffmpeg可执行程序当中也可以看到编译时定制的ffmpeg的外部库,使用ffmpeg -version 就可以看到。我的是:
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
configuration: --disable-debug --enable-libx264 --enable-libx265 --enable-gpl --enable-shared
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
如果是要自己配置,仅仅支持H.264视频和 AAC音频的编码。配置可以是:
./configure --enable-libx264 --enable-libfdk-aac --enable-gpl --enable-nonfree
若出现一些类是 ERROR : XXXXX not found 的错误,可能是你没有安装对应的库,对应下载源码包,安装就好。
因为FFmpeg所支持的格式,编解码,网络协议等很多,全部编译出来后的体积会很大。所以我们要根据具体的应用场景,来进行剪裁。可以通过./configure --help查看。
我们可以做下面的这个实验,关闭所有的不用的模块:
./configure --disable-filters --disable-encoders --disable-decoders --disable-hwaccels --disable-muxers --disable-demuxers --disable-parsers --disable-bsfs --disable-protocols --disable-indevs --disable-devices
在关闭了所有模块之后,我们可以看到配置后的输出信息,输出的信息基本上为空了:
Enabled programs:
ffmpeg ffprobe ffserver
ffplay
External libraries:
iconv libxcb_shm xlib
libxcb libxcb_xfixes zlib
libxcb_shape sdl
Enabled decoders:
Enabled encoders:
Enabled hwaccels:
Enabled parsers:
Enabled demuxers:
asf mpegts rtsp
mov rm
Enabled muxers:
ffm
Enabled protocols:
http tcp udp
rtp
Enabled filters:
aformat format setpts
anull hflip transpose
atrim null trim
crop rotate vflip
Enabled bsfs:
Enabled indevs:
Enabled outdevs:
License: LGPL version 2.1 or later
Creating config.mak, config.h, and doc/config.texi...
在关闭了所有模块之后,可以根据我们自己需求来定制模块。假如我们需要只支持H.264 H.265 AAC MP4,自己定义需要的模块,可以是:
./configure --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-gpl --enable-nonfree --enable-muxer=mp4 --disable-filters --disable-encoders --disable-decoders --disable-hwaccels --disable-muxers --disable-demuxers --disable-parsers --disable-bsfs --disable-protocols --disable-indevs --disable-devices
输出的结果,把我们需要的库有加进去:
Enabled programs:
ffmpeg ffprobe ffserver
ffplay
External libraries:
iconv libxcb_shape sdl
libx264 libxcb_shm xlib
libx265 libxcb_xfixes zlib
libxcb
Enabled decoders:
Enabled encoders:
Enabled hwaccels:
Enabled parsers:
Enabled demuxers:
asf mpegts rtsp
mov rm
Enabled muxers:
ffm
Enabled protocols:
http tcp udp
rtp
Enabled filters:
aformat format setpts
anull hflip transpose
atrim null trim
crop rotate vflip
Enabled bsfs:
Enabled indevs:
Enabled outdevs:
License: nonfree and unredistributable
Creating config.mak, config.h, and doc/config.texi...
./configure --list-encoders:
FFmpeg源代码中可以包含的编码非常多,常见的,不常见的都可以在编译配置列表中见到,可以通过使用编译配置命令configure --list-encoders参数来查看。ffmpeg支持的encoder比较全面,比如aac、ac3、h264、h265、mpeg4、mpeg2video、pcm、flv的编码器支持
a64multi libopenjpeg pcm_u16le
a64multi5 libopus pcm_u24be
aac libschroedinger pcm_u24le
ac3 libshine pcm_u32be
ac3_fixed libspeex pcm_u32le
adpcm_adx libtheora pcm_u8
adpcm_g722 libtwolame pcx
adpcm_g726 libutvideo pgm
adpcm_ima_qt libvo_amrwbenc pgmyuv
adpcm_ima_wav libvorbis png
adpcm_ms libvpx_vp8 ppm
adpcm_swf libvpx_vp9 prores
adpcm_yamaha libwavpack prores_aw
alac libwebp prores_ks
alias_pix libwebp_anim qtrle
amv libx262 r10k
apng libx264 r210
ass libx264rgb ra_144
asv1 libx265 rawvideo
asv2 libxavs roq
avrp libxvid roq_dpcm
avui ljpeg rv10
ayuv mjpeg rv20
bmp movtext s302m
cinepak mp2 sgi
cljr mp2fixed snow
comfortnoise mpeg1video sonic
dca mpeg2_qsv sonic_ls
dnxhd mpeg2video srt
dpx mpeg4 ssa
dvbsub msmpeg4v2 subrip
dvdsub msmpeg4v3 sunrast
dvvideo msvideo1 svq1
eac3 nellymoser targa
ffv1 nvenc text
ffvhuff nvenc_h264 tiff
flac nvenc_hevc tta
flashsv pam utvideo
flashsv2 pbm v210
flv pcm_alaw v308
g723_1 pcm_f32be v408
gif pcm_f32le v410
h261 pcm_f64be vc2
h263 pcm_f64le vorbis
h263p pcm_mulaw wavpack
h264_qsv pcm_s16be webvtt
hap pcm_s16be_planar wmav1
hevc_qsv pcm_s16le wmav2
huffyuv pcm_s16le_planar wmv1
jpeg2000 pcm_s24be wmv2
jpegls pcm_s24daud wrapped_avframe
libfaac pcm_s24le xbm
libfdk_aac pcm_s24le_planar xface
libgsm pcm_s32be xsub
libgsm_ms pcm_s32le xwd
libilbc pcm_s32le_planar y41p
libkvazaar pcm_s8 yuv4
libmp3lame pcm_s8_planar zlib
libopencore_amrnb pcm_u16be zmbv
libopenh264
./configure --list-decoders:
FFmpeg源代码中本身包含了很多的解码支持,解码主要为输入的时候进行的解码,也可以理解为将压缩过的编码进行解压缩,关于解码的支持,可以通过./configure –list-decoders命令来进行查看。ffmpeg所支持的解码器模块decoders,支持了mpeg4、h264、h265(HEVC)、mp3等
aac avs flashsv2
aac_fixed avui flic
aac_latm ayuv flv
aasc bethsoftvid fourxm
ac3 bfi fraps
ac3_fixed bink frwu
adpcm_4xm binkaudio_dct g2m
adpcm_adx binkaudio_rdft g723_1
adpcm_afc bintext g729
adpcm_aica bmp gif
adpcm_ct bmv_audio gsm
adpcm_dtk bmv_video gsm_ms
adpcm_ea brender_pix h261
adpcm_ea_maxis_xa c93 h263
adpcm_ea_r1 cavs h263i
adpcm_ea_r2 ccaption h263p
adpcm_ea_r3 cdgraphics h264
adpcm_ea_xas cdxl h264_crystalhd
adpcm_g722 cfhd h264_mmal
adpcm_g726 cinepak h264_qsv
adpcm_g726le cljr h264_vda
adpcm_ima_amv cllc h264_vdpau
adpcm_ima_apc comfortnoise hap
adpcm_ima_dk3 cook hevc
adpcm_ima_dk4 cpia hevc_qsv
adpcm_ima_ea_eacs cscd hnm4_video
adpcm_ima_ea_sead cyuv hq_hqa
adpcm_ima_iss dca hqx
adpcm_ima_oki dds huffyuv
adpcm_ima_qt dfa iac
adpcm_ima_rad dirac idcin
adpcm_ima_smjpeg dnxhd idf
adpcm_ima_wav dpx iff_ilbm
adpcm_ima_ws dsd_lsbf imc
adpcm_ms dsd_lsbf_planar indeo2
adpcm_psx dsd_msbf indeo3
adpcm_sbpro_2 dsd_msbf_planar indeo4
adpcm_sbpro_3 dsicinaudio indeo5
adpcm_sbpro_4 dsicinvideo interplay_acm
adpcm_swf dss_sp interplay_dpcm
adpcm_thp dvaudio interplay_video
adpcm_thp_le dvbsub jacosub
adpcm_vima dvdsub jpeg2000
adpcm_xa dvvideo jpegls
adpcm_yamaha dxa jv
aic dxtory kgv1
alac dxv kmvc
alias_pix eac3 lagarith
als eacmv libcelt
amrnb eamad libdcadec
amrwb eatgq libfdk_aac
amv eatgv libgsm
anm eatqi libgsm_ms
ansi eightbps libilbc
ape eightsvx_exp libopencore_amrnb
apng eightsvx_fib libopencore_amrwb
ass escape124 libopenjpeg
asv1 escape130 libopus
asv2 evrc libschroedinger
atrac1 exr libspeex
atrac3 ffv1 libutvideo
atrac3p ffvhuff libvorbis
aura ffwavesynth libvpx_vp8
aura2 fic libvpx_vp9
avrn flac libzvbi_teletext
avrp flashsv loco
mace3 pcm_f64le smacker
mace6 pcm_lxf smc
mdec pcm_mulaw smvjpeg
metasound pcm_s16be snow
microdvd pcm_s16be_planar sol_dpcm
mimic pcm_s16le sonic
mjpeg pcm_s16le_planar sp5x
mjpegb pcm_s24be srt
mlp pcm_s24daud ssa
mmvideo pcm_s24le stl
motionpixels pcm_s24le_planar subrip
movtext pcm_s32be subviewer
mp1 pcm_s32le subviewer1
mp1float pcm_s32le_planar sunrast
mp2 pcm_s8 svq1
mp2float pcm_s8_planar svq3
mp3 pcm_u16be tak
mp3adu pcm_u16le targa
mp3adufloat pcm_u24be targa_y216
mp3float pcm_u24le tdsc
mp3on4 pcm_u32be text
mp3on4float pcm_u32le theora
mpc7 pcm_u8 thp
mpc8 pcm_zork tiertexseqvideo
mpeg1_vdpau pcx tiff
mpeg1video pgm tmv
mpeg2_crystalhd pgmyuv truehd
mpeg2_mmal pgssub truemotion1
mpeg2_qsv pictor truemotion2
mpeg2video pjs truespeech
mpeg4 png tscc
mpeg4_crystalhd ppm tscc2
mpeg4_mmal prores tta
mpeg4_vdpau prores_lgpl twinvq
mpeg_vdpau ptx txd
mpeg_xvmc qcelp ulti
mpegvideo qdm2 utvideo
mpl2 qdraw v210
msa1 qpeg v210x
msmpeg4_crystalhd qtrle v308
msmpeg4v1 r10k v408
msmpeg4v2 r210 v410
msmpeg4v3 ra_144 vb
msrle ra_288 vble
mss1 ralf vc1
mss2 rawvideo vc1_crystalhd
msvideo1 realtext vc1_mmal
mszh rl2 vc1_qsv
mts2 roq vc1_vdpau
mvc1 roq_dpcm vc1image
mvc2 rpza vcr1
mxpeg rscc vmdaudio
nellymoser rv10 vmdvideo
nuv rv20 vmnc
on2avc rv30 vorbis
opus rv40 vp3
paf_audio s302m vp5
paf_video sami vp6
pam sanm vp6a
pbm screenpresso vp6f
pcm_alaw sdx2_dpcm vp7
pcm_bluray sgi vp8
pcm_dvd sgirle vp9
pcm_f32be shorten vplayer
pcm_f32le sipr vqa
pcm_f64be smackaud wavpack
webp wmv3_vdpau xma1
webvtt wmv3image xma2
wmalossless wnv1 xsub
wmapro ws_snd1 xwd
wmav1 xan_dpcm y41p
wmav2 xan_wc3 yop
wmavoice xan_wc4 yuv4
wmv1 xbin zero12v
wmv2 xbm zerocodec
wmv3 xface zlib
wmv3_crystalhd xl zmbv
./configure --list-muxers
FFmpeg的复用为将压缩后的编码封装到一个容器格式中(又叫Muxing),如果要查看FFmpeg源代码中都可以支持哪些容器格式,可以用过命令./configure --list-muxers查看。ffmpeg支持生成裸流文件,例如h264、aac、pcm,也支持一些常见的格式,例如mp3、mp4、flv、hls、webm等
a64 ipod pcm_s24le
ac3 ircam pcm_s32be
adts ismv pcm_s32le
adx ivf pcm_s8
aiff jacosub pcm_u16be
amr latm pcm_u16le
apng libnut pcm_u24be
asf lrc pcm_u24le
asf_stream m4v pcm_u32be
ass matroska pcm_u32le
ast matroska_audio pcm_u8
au md5 psp
avi microdvd rawvideo
avm2 mjpeg rm
bit mkvtimestamp_v2 roq
caf mlp rso
cavsvideo mmf rtp
chromaprint mov rtp_mpegts
crc mp2 rtsp
dash mp3 sap
data mp4 segment
daud mpeg1system singlejpeg
dirac mpeg1vcd smjpeg
dnxhd mpeg1video smoothstreaming
dts mpeg2dvd sox
dv mpeg2svcd spdif
eac3 mpeg2video spx
f4v mpeg2vob srt
ffm mpegts stream_segment
ffmetadata mpjpeg swf
filmstrip mxf tee
flac mxf_d10 tg2
flv mxf_opatom tgp
framecrc null truehd
framemd5 nut uncodedframecrc
g722 oga vc1
g723_1 ogg vc1t
gif oma voc
gxf opus w64
h261 pcm_alaw wav
h263 pcm_f32be webm
h264 pcm_f32le webm_chunk
hds pcm_f64be webm_dash_manifest
hevc pcm_f64le webp
hls pcm_mulaw webvtt
ico pcm_s16be wtv
ilbc pcm_s16le wv
image2 pcm_s24be yuv4mpegpipe
image2pipe
./configure --list-demuxers:
FFmpeg的解复用为将读入的容器格式拆解开,将里面的压缩的音频流、视频流、字幕流、数据流等等提取出来(又叫Demuxing),如果要查看FFmpeg的源代码中都可以支持哪些输入的容器格式,可以通过命令./configure --list-demuxers 查看。fmpeg源码中已经支持的demuxer非常多,包含图片(image)、mp3、flv、MP4、mov、avi等
aa flv mmf
aac fourxm mov
ac3 frm mp3
acm fsb mpc
act g722 mpc8
adf g723_1 mpegps
adp g729 mpegts
ads genh mpegtsraw
adx gif mpegvideo
aea gsm mpjpeg
afc gxf mpl2
aiff h261 mpsub
amr h263 msf
anm h264 msnwc_tcp
apc hevc mtv
ape hls mv
apng hnm mvi
aqtitle ico mxf
asf idcin mxg
asf_o idf nc
ass iff nistsphere
ast ilbc nsv
au image2 nut
avi image2_alias_pix nuv
avisynth image2_brender_pix ogg
avr image2pipe oma
avs image_bmp_pipe paf
bethsoftvid image_dds_pipe pcm_alaw
bfi image_dpx_pipe pcm_f32be
bfstm image_exr_pipe pcm_f32le
bink image_j2k_pipe pcm_f64be
bintext image_jpeg_pipe pcm_f64le
bit image_jpegls_pipe pcm_mulaw
bmv image_pictor_pipe pcm_s16be
boa image_png_pipe pcm_s16le
brstm image_qdraw_pipe pcm_s24be
c93 image_sgi_pipe pcm_s24le
caf image_sunrast_pipe pcm_s32be
cavsvideo image_tiff_pipe pcm_s32le
cdg image_webp_pipe pcm_s8
cdxl ingenient pcm_u16be
cine ipmovie pcm_u16le
concat ircam pcm_u24be
data iss pcm_u24le
daud iv8 pcm_u32be
dcstr ivf pcm_u32le
dfa ivr pcm_u8
dirac jacosub pjs
dnxhd jv pmp
dsf libgme pva
dsicin libmodplug pvf
dss libnut qcp
dts live_flv r3d
dtshd lmlm4 rawvideo
dv loas realtext
dvbsub lrc redspark
dxa lvf rl2
ea lxf rm
ea_cdata m4v roq
eac3 matroska rpl
epaf mgsts rsd
ffm microdvd rso
ffmetadata mjpeg rtp
filmstrip mlp rtsp
flac mlv sami
flic mm sap
sbg swf vpk
sdp tak vplayer
sdr2 tedcaptions vqf
segafilm thp w64
shorten threedostr wav
siff tiertexseq wc3
sln tmv webm_dash_manifest
smacker truehd webvtt
smjpeg tta wsaud
smush tty wsvqa
sol txd wtv
sox v210 wv
spdif v210x wve
srt vag xa
stl vc1 xbin
str vc1t xmv
subviewer vivo xvag
subviewer1 vmd xwma
sup vobsub yop
svag voc yuv4mpegpipe
./configure --list-protocols:
FFmpeg不仅仅支持本地的多媒体处理,而且还支持网络流媒体的处理,支持的网络流媒体协议相对来说也很全面,可以通过命令 ./configure --list-protocols 进行查看。ffmpeg支持的流媒体协议比较多,包括mms、http、hls(M3U8)、rtmp、rtp、甚至支持tcp、udp,也支持本地文件file协议,和多个文件拼接串流的支持concat
async icecast rtmpt
bluray librtmp rtmpte
cache librtmpe rtmpts
concat librtmps rtp
crypto librtmpt sctp
data librtmpte srtp
ffrtmpcrypt libsmbclient subfile
ffrtmphttp libssh tcp
file md5 tls_gnutls
ftp mmsh tls_openssl
gopher mmst tls_schannel
hls pipe tls_securetransport
http rtmp udp
httpproxy rtmpe udplite
https rtmps unix