摘要:由于《嵌入式操作系统》网络授课的需要,参考CSDN多篇帖子,在笔记本Thinkpad Win7上,搭建了Linux ubuntu 16.04 + OBS 的推流程序,之后,向几大主流直播平台进行推流测试,测试成功了“虎牙”和bilibili两个可用的平开,并开展授课直播。
一.安装ubuntu预热阶段
太久时间没有接触Linux,还停留在本科阶段学习Redhat 9及fedora版本的时代(暴露年龄了)。现在,Thinkpad笔记本8G内存独立NVS4200显卡,安装了win7作为日常办公机器,ままです。
1.版本方案选择,版本ubuntu教学要求,方案三个:
A直接u盘或者光盘启动安装在硬盘上;
B虚拟机安装VMware,再在windows上安装linux;
C采用wubi.exe,将linux作为一个大“软件”,安装在windows上。
考虑到A容易弄乱电脑硬盘的分区表,造成资料丢失;B的VM软件商业化收费,需要再寻找新的替代软件;C恰好不弄乱分区表,同时都是免费,而且好卸载。三害相权取其軽い,所以C. (注,经DeanLuo提示,如果使用win10电脑的话,方案C对应的就是在win10下安装ubuntu的子系统)
2.ubuntu初期版本,由于最初先下载wubi.exe是绑定的13.10,那么就开始实验,(并不实际推荐采取这个版本,有经验者,请忽略本段跳往3) 下载了:ubuntu-13.10-desktop-amd64.iso,安装的时候,按照提示,把wubi.exe及对应的iso文件放在同一个文件夹,然后,双击进行打开,即可开始安装,需要注意的是:记得设定第一个管理员账户密码,建议设定ubuntu系统英文显示,以及安装位置不要放在C盘,最好放在其他盘的根目录下,避免中文目录名子,例如E:/. 大约一个小时不到就安装好了,然后开始熟悉,从sudo命令开始看,然后如何第一次建立root超级管理员的密码。这一初期版本的问题是,ubuntu官方已经放弃此版本的更新维护,相关的软件仓库无法工作,需要手动切换到软件仓库地址,即编辑/etc/apt/sources.list文件,对应的位置修改成 …… http://old-releases.ubuntu.com/ubuntu ……还有注意ubuntu的版本英文单词代号的修改。后续安装OBS推流软件,很可能因为ubuntu版本太低无法成功,所以放弃ubuntu 13.10方案了。这时候,wubi.exe的优势就体现出来了,可以登录到win7里面,然后像卸载普通软件一样,卸载ubuntu.
3.下载ubuntu14.04 LTS版本
由于wubi.exe不能支持更高版本的ubuntu,导致wubi.exe项目途中放弃,所以,我们无法采用wubi.exe一步到位升级到ubuntu 16.04或者18.04版本,还好我找到了wubi.exe 安装成功ubuntu14.04 LTS版本的例子,然后检索到支持obs studio的最低版本ubuntu如下原文:OBS:
The Linux release is available officially for Ubuntu 14.04 and newer.
所以,我就大胆前进,下载了ubuntu14.04 LTS版本,ps,LTS表示的是“长long期terms支持support”. 官方下载地址在:
releases.ubuntu.com/14.04.6/ 默认选了64位desktop版本的系统。具体操作细节清参考https://blog.csdn.net/weixin_33852020/article/details/93241726
有提到无法进入ubuntu系统的问题,需要在启动引导界面注意把ro修改成rw,这一点我没有遇到。另,win10系统下,是否也有类似问题,请自学。
4.从ubuntu14.04版本自动升级到ubuntu16.04版本。
由于14.04版本获得ubuntu官方支持的有效期是2014-2019年,刚刚好失去支持,所以带着好奇心,让我想起《好奇害死猫》电影。开始启动升级,升往下一个16.04LTS版本。保险起见,我选择依靠系统自己通过软件仓库升级,网络下载耗时30分钟,但是升级安装耗时大约一个通宵,几乎是下载了新的iso,再升级,比重新安装还复杂。大致过程请参考,如下帖子https://blog.csdn.net/chszs/article/details/51236572?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
虽然时间消耗有点常,基本上还算顺利,中间会询问是否更新软件仓库的源的地址到新的版本,请记得选yes. 然后,重启多次,最后,早晨起来发现黑屏了。这里不用害怕,是桌面系统启动失败,需要重新设定一下,参考这个:https://bbs.csdn.net/topics/391941922
(这里不涉及到显卡驱动问题,笔记本使用的是系统自带的显卡兼容驱动)解决好了以后,我们就开始ubuntu16.04的历程了。
5.ubuntu16.04版本准备工作
主要包括删除多余内核,解放boot区域的空间,这个是从网上帖子上看到的,仅保留了linux-image-4.4.0-31-generic内核。升级以后的apt-get update 与upgrade。。。至此,一个用于嵌入式操作系统教学的linux操作系统就准备完成。当然,*如果是win10系统,则可以考虑一步到位安装ubuntu16.04 LTS子系统。*具体请参考:https://blog.csdn.net/nasonyehfm/article/details/95464474
二. OBS studio 安装
1.参考网址:https://obsproject.com/download
2.检查openGL版本,OpenGL 3.2 or later is required .如果是ubuntu14.04版本,可能没有,则需要安装一个叫做“”Mesa“”的一个软件包。
3.FFmpeg,可以apt-get方式安装进来,如果检查没有,则可能需要添加还有PPA字样的软件仓库的源。参考https://blog.csdn.net/lh2016rocky/article/details/75331614
4.最后支持apt-get install obs-studio命令直接安装OBS studio
5.照方抓药比较顺利,启动以后,第一步建议设定OBS的操作界面为中文,第二步可以自动检测可以设定的最大流推参数。
三.推流推往谁?
1.抖音,网络资料表明抖音支持第三方OBS推流的游戏直播,需要进入到直播房间再获取推流地址及串码,可是,我下载了最新的手机端10.0版本,显示创建游戏用的房间失败,也有其他网友遇到了同样的问题。不知道是不是帐号认证的权限不够,因此,无法得到推流的地址及串流码,失败;
2.快手/应该也是AcFun的老板,没有在网络上找到成功的案例,并且官方无发布支持第三方obs,放弃;
3.陌陌,这个号称纳斯达克的企业,我服了它了:(1)首先陌陌在开源OBS studio的基础框架下,自己研发了一款仅支持windows的momo_live软件,额外加入了定制插件,并实现obs直播功能。思维方式上还是做自我掌握,平台整体独立的考量。(2)实验效果,体验不如原版的好,因为在窗口前后重叠的情况下,直播内容会互相干扰,也可能是我没找到设置的秘诀。(3)推流地址和串码(简称“”木牛流马“”),在Linux下直接使用直播房间提供的木牛流马,obs上观察显示推流成功,但远程直播画面和声音出不来。如果是用windows的momo_live.,则相同的木牛流马可以推流成功并直播显示,于是我杀了一个回马枪,再去windows的momo_live里面检查木牛流马,大吃一惊,居然变换了木牛流马。再进一步,我把变更以后的木牛流马手动保存下来,重启linux再obs推往新的木牛流马,居然成功了,可是好景不长,只能坚持十几秒,屡试都爽。这说明每次momo服务器会对直播的服务器进行变更,猜测是做云端服务器的负载平衡。至此,陌陌平台上的实验不算成功。
4.YY直播,直播室给出的推流地址始终是127.0.0.1地址下的一个端口。然后把这个127开头的内容粘贴进入windows平台的定制obs即可实现直播。问题是,这个127.0.0.1并无法提取到远端服务器的地址,是不是有办法通过报文分析捕获到,还有待进一步实验。
5.虎牙,不知道YY和虎牙有何种亲戚关系,在app直播助手上给出的推流地址居然是192.168.0.1开头的一串。后续参考网络资料,得知需要登录官网的播主直播间,网页版才能找到真正的远程推流地址,串流码不填,linux平台下实验,一次成功。动态弹幕上,还没有解决linux下的虎牙弹幕助手,因此在试课直播的时候,需要打开手机的虎牙客户端,查看同学们发送的弹幕信息。
6.斗鱼,还没来得及实验,网络资料表明获取主播资格有些困难,需要吃太多小鱼?
7.探探/遇见,太侧重交友,没有直播按钮。
8.bilibili.比较容易打开,本站参考攻略给我提供了很多帮助,经过多次实验终于成功。主要参考了:https://blog.csdn.net/qq_26819733/article/details/80410182
9.第三方测评网站根据弹幕和发送礼物的数据,给出的单日各直播平台的点击量/交互/资金收入排名,预计真实数据应该还会更高。一个平台单日实现1000万元以上的礼物发送,非常惊叹~
10.办公自动化系统,例如zoom,阿里dingding,腾讯会议及华为link,均未暂未测试,仅仅从linux上直播看,本文测试成功了bilibili和虎牙。
四.其他相关的补充
1.obs无法捕获终端窗口的显示问题。请用旧版本的XTERM代替;
2.ubuntu下无法播放音乐视频,可以apt-get通用解码库解决。
3.安装画图板sudo apt-get install kolourpaint4
4.网络浏览器,火狐,可自动添加flashplayer,播放网页内容。
5.无法使用weixin及qq,但大学MOOC及相关平台资源可以网页访问到,直播时候直接打开,相当于用娱乐平台(虎牙/bilibili )为教学平台做压力分流了。
6.弹幕助手问题,bilibili直播的时候,可直接下载 https://www.danmaku.live 有linux版本可用.目前版本的obs studio 暂时无法加入“浏览器插件”browser source,因此无法实现弹幕的交互显示,但可以支持听众弹幕的obs窗口外显示。
7.更新Nvidia显卡驱动失败又退回。第二次好奇害死猫,真的差点直播不了了。在系统软件中心ubuntu software center,搜索nvidia,然后升级了驱动及对应的X服务器设置,结果,再打开obs直播的时候,就不能读取xwindows窗口内容了,例如摄像头/窗口桌面等显示均出错,但全屏直播没问题。而且在开机进入系统的时候还会报tpm启动错误及CPU温度过高这样的问题。有搜索了一晚上,仍然不得解决,最后只好手动卸载两个nvidia的驱动,并settting里面降级回来,如下图部分:
这里猜测的是,窗口x.server部分被应用程序调用的时候出问题了。降级回通用的驱动以后,又正常恢复了,包括启动系统时候也不报tpm及cpu温度错误了。由此侧面证实,nvidia升级驱动的同时,还很可能更新了系统的底层内容。检查系统内核,发现除原有的4.4.0-31以外,还多了几个:
小结,不要轻易升级显卡驱动,更不要轻易升级内核。
结论:实测Linux下OBS设置视频推流1000kbps,帧率25,画面大小640*360,本地显示本机CPU占用率10%左右,丢包率显示1%以下,远程直播效果上看:虎牙最流畅,其次是bilibili,再次是momo_live(win7下面).
嵌入式操作系统~试课
(更新完成20200302)