最近有个直播项目,需要解析音视频流,得用到业界有名的FFMPEG,所以先本地跑一跑。啥是FFMPEG,它自家官网如是说:完整的跨平台解决方案,用于记录,转换和流式传输音频和视频。
1、下载直接去官网https://ffmpeg.zeranoe.com/builds/下最新版本即可:
4.2.2是发布版本,而最上面那个20200306-cfd9a65是git上的最新版本。win10自然选64位的。static静态版本包含所有的依赖库,我们就选它吧。
2、解压安装包到D盘的ffmpeg目录下后,把bin目录添加到环境变量:
3、打开命令行界面,敲入ffmpeg,可以看到出现的版本信息:
我在D盘的output目录下有个音频文件,我们可以使用ffmpeg命令的i参数指定文件地址,来看下文件的一些信息:
D:\output>ffmpeg -i 20190806_164151.wav ffmpeg version git-2020-03-06-cfd9a65 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.2.1 (GCC) 20200122 configuration: --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-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf libavutil 56. 42.100 / 56. 42.100 libavcodec 58. 73.102 / 58. 73.102 libavformat 58. 39.101 / 58. 39.101 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 77.100 / 7. 77.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Guessed Channel Layout for Input Stream #0.0 : mono Input #0, wav, from '20190806_164151.wav': Duration: 00:00:23.56, bitrate: 256 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s At least one output file must be specified
现在我们可以开始使用ffmpeg看直播了:
E:\workspace>ffplay -i rtmp://58.200.131.2:1935/livetv/hunantv ffplay version git-2020-03-06-cfd9a65 Copyright (c) 2003-2020 the FFmpeg developers built with gcc 9.2.1 (GCC) 20200122 configuration: --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-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf libavutil 56. 42.100 / 56. 42.100 libavcodec 58. 73.102 / 58. 73.102 libavformat 58. 39.101 / 58. 39.101 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 77.100 / 7. 77.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Input #0, flv, from 'rtmp://58.200.131.2:1935/livetv/hunantv':0/0 Metadata: Server : NGINX RTMP (github.com/arut/nginx-rtmp-module) displayWidth : 1024 displayHeight : 576 fps : 25 profile : level : Duration: 00:00:00.00, start: 56640.643000, bitrate: N/A Stream #0:0: Data: none Stream #0:1: Video: h264 (Main), yuv420p(progressive), 1024x576 [SAR 1:1 DAR 16:9], 1999 kb/s, 25 fps, 25 tbr, 1k tbn, 50 tbc Stream #0:2: Audio: aac (LC), 48000 Hz, stereo, fltp, 139 kb/s 56646.57 A-V: 0.090 fd= 3 aq= 0KB vq= 0KB sq= 0B f=0/0