【流媒体技术】流媒体(2)使用ffmpeg推流

时间:2021-06-11 05:48:12


1.下载准备

首先下载ffmpeg,按照我一贯的风格,喜欢去官网下载

打开ffmpeg官方网站http://ffmpeg.org/

【流媒体技术】流媒体(2)使用ffmpeg推流

点击download进入下载页面

【流媒体技术】流媒体(2)使用ffmpeg推流


选择windows图标

【流媒体技术】流媒体(2)使用ffmpeg推流


点击windows Builds

【流媒体技术】流媒体(2)使用ffmpeg推流

选择版本信息,选择好后就可以下载使用了

2.使用

将ffmpeg解压到本地,然后打开bin目录

【流媒体技术】流媒体(2)使用ffmpeg推流

复制目录地址,然后打开cmd命令行

【流媒体技术】流媒体(2)使用ffmpeg推流

ok,我们打开两个这样的命令行,然后同时都进入到bin目录下,一个用于推流,一个用于播放,当然可以打开多个同时播放,但是在推流之前,我们还需要做一件事情才可以,那就是转码,推流的视频格式必须是音频AAC视频H264编码,怎么转呢?我们用ffmpeg库,输入以下指令进行转码

ffmpeg -i test.mp4 -ar 22050 output.flv
参数test.mp4为我们需要转码的视频,output.flv是已经转码的视频名称,为了方便,我们将test.mp4文件拖放到bin目录下,然后在cmd中进入bin目录下运行此命令,转码完成之后就可以开始推流了

ffmpeg -re -i output.flv -vcodec copy -f flv rtmp://localhost:1935/hls/mystream -loglevel quiet
参数output.flv就是我们需要推流的视频文件,rtmp://localhost:1935/hls/mystream为流媒体服务器地址,其中mystream名称可以自定义,在这里我们可以设定为mystream,接下来开始推流,推流是一个同步过程,不会立即结束,如果推流结束,那么你就不能在播放了,所以我们先打开播放器,ffmpeg window版中有ffplay.exe组件,用于视频播放,我们可以输入以下指令来打开流媒体播放器

ffplay "rtmp://localhost:1935/hls/mystream"
参数rtmp://localhost:1935/hls/mystream为我们刚刚推流的地址,填上就可以了

此时我们开始推流,同时运行播放器指令,能够弹出播放界面说明我们已经成功了,否则仔细阅读我写的教程一步一步慢慢来,接下来我们就可以下载ffmpeg的源代码,自行编译库,并添加到我们的项目中,如Android,ios,java,win32,mfc等等项目中,我会带领大家在Android项目中使用ffmpeg,详细请看我的下一篇教程

【流媒体技术】流媒体(2)使用ffmpeg推流