ffmpeg推流拉流的几种方式 |
您所在的位置:网站首页 › ffmpeg多路视频流转码 › ffmpeg推流拉流的几种方式 |
ffmpeg在以前介绍过,是一个相当强大的工具,我们这次利用它实现rtmp推流(最终推流地址统一为rtmp://127.0.0.1:1935/live/123)。 1、首先下载ffmpeg和ffplayffmpeg在以前介绍过,是一个相当强大的工具,我们这次利用它实现rtmp推流(最终推流地址统一为rtmp://127.0.0.1:1935/live/123)。 1、首先下载ffmpeg和ffplay image官方下载链接为:http://ffmpeg.org/ 2、cmd进入ffmpeg所在目录 image 3、ffmpeg查看电脑设备输入下面的语句即可列出电脑的设备 ffmpeg -list_devices true -f dshow -i dummy image可以看到我电脑里面有USB2.0 PC CAMERA摄像头和一个乱码的麦克风 如果设备名称有中文,会出现乱码,想看设备原名,可以去设备管理器中查看,又可以利用第三方工具查看,推荐后者。 比如使用graphedit,打开程序后 图表-> 插入过滤器,就可以看到相应的设备名 image image image可以发现可用设备为USB2.0 PC CAMERA和麦克风 (2- USB2.0 MIC) 4、测试摄像头是否可用cmd中输入下面语句并回车(USB2.0 PC CAMERA为摄像头名称) ffplay -f dshow -i video="USB2.0 PC CAMERA" 或者 ffplay -f vfwcap -i 0 image如果成功弹出播放窗口,则代表设备可用,否则可能是设备不可用或者设备被占用 5、查看摄像头和麦克风信息cmd中输入下面语句即可查询摄像头信息 ffmpeg -list_options true -f dshow -i video="USB2.0 PC CAMERA" imageUSB2.0 PC CAMERA摄像头信息 cmd中输入下面语句即可查询麦克风信息 ffmpeg -list_options true -f dshow -i audio="麦克风 (2- USB2.0 MIC)" image麦克风(2- USB2.0 MIC)信息 6、本地视频的推流先进行简单的本地视频推流模拟,我们在ffmpeg的目录下放置一个视频,然后cmd进入该目录,把视频推流至rtmp://127.0.0.1:1935/live/123(127.0.0.1:1935为rtmp服务器地址、live为nginx配置节点、123当做密钥,推流拉流地址一样即可播放),语句如下 ffmpeg.exe -re -i demo.wmv -f flv rtmp://127.0.0.1:1935/live/123 image此时ffmpeg源源不断的把视频推流至服务器,如果地址没错,可以利用vlc或其他手段实现拉流,这里就先不解释如何拉流 7、摄像头推流接下来正式把对摄像头进行推流,从前面我们知道摄像头名称为USB2.0 PC CAMERA,而且推流服务器ip为127.0.0.1:1935,关键字为live,所以cmd中输入以下语句: ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 image和本地视频推流一样,摄像头拍到的画面会实时推流出去(当然会有延迟而且现在是没有声音的),当地址正确时,可以实现拉流 8、麦克风推流前面介绍了摄像头画面推流,可是没有声音,这次我们把麦克风声音推流出去,cmd中输入下面语句 ffmpeg -f dshow -i audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 image和前面差不多,声音被推流出去了,通过vlc拉流可以听到录制的声音,但很明显不会有画面 9、摄像头&麦克风推流终于到最激动人心的时刻了,我们这次要实现同时推流摄像头画面与声音,此时我们的语句应该如下 ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -f dshow -i audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 或者 ffmpeg -f dshow -i video="USB2.0 PC CAMERA":audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -r 25 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 image很nice,和前面一样,画面与声音源源不断的被推流到服务器,接下来我们就应该正式的开发拉流了 作者:Msg1 链接:https://www.jianshu.com/p/c141fc7881e7 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 image官方下载链接为:http://ffmpeg.org/ 2、cmd进入ffmpeg所在目录 image 3、ffmpeg查看电脑设备输入下面的语句即可列出电脑的设备 ffmpeg -list_devices true -f dshow -i dummy image可以看到我电脑里面有USB2.0 PC CAMERA摄像头和一个乱码的麦克风 如果设备名称有中文,会出现乱码,想看设备原名,可以去设备管理器中查看,又可以利用第三方工具查看,推荐后者。 比如使用graphedit,打开程序后 图表-> 插入过滤器,就可以看到相应的设备名 image image image可以发现可用设备为USB2.0 PC CAMERA和麦克风 (2- USB2.0 MIC) 4、测试摄像头是否可用cmd中输入下面语句并回车(USB2.0 PC CAMERA为摄像头名称) ffplay -f dshow -i video="USB2.0 PC CAMERA" 或者 ffplay -f vfwcap -i 0 image如果成功弹出播放窗口,则代表设备可用,否则可能是设备不可用或者设备被占用 5、查看摄像头和麦克风信息cmd中输入下面语句即可查询摄像头信息 ffmpeg -list_options true -f dshow -i video="USB2.0 PC CAMERA" imageUSB2.0 PC CAMERA摄像头信息 cmd中输入下面语句即可查询麦克风信息 ffmpeg -list_options true -f dshow -i audio="麦克风 (2- USB2.0 MIC)" image麦克风(2- USB2.0 MIC)信息 6、本地视频的推流先进行简单的本地视频推流模拟,我们在ffmpeg的目录下放置一个视频,然后cmd进入该目录,把视频推流至rtmp://127.0.0.1:1935/live/123(127.0.0.1:1935为rtmp服务器地址、live为nginx配置节点、123当做密钥,推流拉流地址一样即可播放),语句如下 ffmpeg.exe -re -i demo.wmv -f flv rtmp://127.0.0.1:1935/live/123 image此时ffmpeg源源不断的把视频推流至服务器,如果地址没错,可以利用vlc或其他手段实现拉流,这里就先不解释如何拉流 7、摄像头推流接下来正式把对摄像头进行推流,从前面我们知道摄像头名称为USB2.0 PC CAMERA,而且推流服务器ip为127.0.0.1:1935,关键字为live,所以cmd中输入以下语句: ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 image和本地视频推流一样,摄像头拍到的画面会实时推流出去(当然会有延迟而且现在是没有声音的),当地址正确时,可以实现拉流 8、麦克风推流前面介绍了摄像头画面推流,可是没有声音,这次我们把麦克风声音推流出去,cmd中输入下面语句 ffmpeg -f dshow -i audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 image和前面差不多,声音被推流出去了,通过vlc拉流可以听到录制的声音,但很明显不会有画面 9、摄像头&麦克风推流终于到最激动人心的时刻了,我们这次要实现同时推流摄像头画面与声音,此时我们的语句应该如下 ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -f dshow -i audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 或者 ffmpeg -f dshow -i video="USB2.0 PC CAMERA":audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -r 25 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123 image很nice,和前面一样,画面与声音源源不断的被推流到服务器,接下来我们就应该正式的开发拉流了 作者:Msg1 链接:https://www.jianshu.com/p/c141fc7881e7 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |