golang实现的视频转发服务
ffmpeg推流当期桌面
1,查看支持的设备
ffmpeg -list_devices true -f dshow -i dummy
2,推流到srs服务
ffmpeg -f dshow -i video="USB2.0 HD UVC WebCam":audio="麦克风 (C-Media(R) Audio)" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f flv "rtmp://192.168.50.38/live/livestream"
3,VLC播放rtmp://192.168.50.38/live/livestream
4,https://github.com/ossrs/srs
这个东西感觉有点延时。
直播原理
随着网络速度越来越快,流媒体也变得越来越重要了,尤其像现在的抖音、快手之类的app的兴起更加证明了这一点。因此,作为一个好学的程序员就更应该重视流媒体的技术了。我作为一个流媒体技术的小白,下定决心要好好学一下流媒体的编程技术。
在大学学习的时候,老师曾经说过一句话让我印象非常深刻,至今受益匪浅。那就是要学会学习的方法,这个道理适用于所有的领域,学习一个陌生的编程技术,应该找到一个适合自己的方法论。循序渐进,先大局再局部。先粗枝大叶再细嚼慢咽。一口吃不成胖子。最后,最重要的一点就是要坚持下去。
既然知道了一些大道理,那么应该如何学好流媒体技术呢?我个人认为,刚开始学习流媒体的时候,不要去看什么i帧b帧p帧这些细节。因为这些会逐渐让我们失去学习流媒体的兴趣。流媒体其实包括视频采集、网络传输、视频编解码等知识。已经有很多人总结了很多有用的例子,我们可以去学习别人的代码。学习东西,先抄袭、再超越,最后是创新。
针对这个直播的原理,先在主播手机上进行视频采集,然后把采集到的视频流经过压缩通过网络传输到服务器上的视频转发服务,最后其他人就可以通过访问视频转发服务的视频流地址就可以观看了。
总结直播的原理就是,主播推流到服务器,观众从服务器拉流进行观看。
bluestacks多媒体管理器导入到虚拟机的文件位置
/sdcard/DCIM/SharedFolder