改变自己的三首歌

肉壳平时不喜欢在家工作,因为一旦在家工作,就总想配上一杯酒。 然而,肉壳喝酒之后就容易变得多愁善感一些。当然,作为一个酒鬼,我相信前面这句话的主语,换成任何一个人都是合适的……

当人变的多愁善感,任何事情都可能触动人心中最深层的痛点,平时我们极力掩饰的内心弱点,在一刻都可以发泄出来,不需要再埋在心里,有一说一。至今肉壳都记得几年前和小龙哥在香港大围的鸡煲店掉泪的情景。当然,那天我俩都喝多了……

不过,我今天想说的不是喝酒,而是想说说三首歌。当然了,此时此刻的肉壳肯定是因为在家工作,所以喝了酒,然后听到几首歌,触景生情,才想要写这篇文章的……

做过肉壳的车,或者了解肉壳的人,肯定都知道,肉壳喜欢爵士乐,或者oldies。Oldies大概就是老音乐的意思。有几个朋友问过我,为什么会喜欢这些音乐?这三首歌就是终极答案。

Smoke gets in your eyes By The Platters

第一次听这首歌,是在肉壳父亲在国外买的一套CD中听到的,这首歌是第一张盘的第一首歌,当时肉壳有一台松下的CD机,因为当时只有小学4年级,所以也不懂随机播放是什么的,基本都是顺序播放,所以这首歌听的次数最多。渐渐的觉得这些歌越来越好听,简直无法自拔。从此,在音乐鉴赏这条路,肉壳就走歪了……

My way by Paul Anka

随着前面提到的5张CD越听越多,肉壳开始能够记住一些人的名字了,比如Paul Anka,在这5张CD里,Paul Anka于1969年创作的My Way是肉壳最喜欢的歌曲之一,另外加上他写的其他歌曲如Diana,Lonely Boy,Put Your Head on My Shoulder也非常好听,所以肉壳便开始喜欢Paul Anka。从2001年左右开始喜欢他,却一直到2017年才有机会听到他老人家的现场演唱会,也算是了了肉壳的一桩心愿,当然,这是后话了。

In the Mood By Gleen Miller

时间来到了肉壳的初中时代,那个时候,家里刚刚装了ADSL宽带,虽然网速只有512k,但是因为是包月,所以可以无所忌惮的上网了,所以肉壳开始在网络上搜索自己的喜欢个歌曲。只可惜,那时候还没现在这么多在线听音乐的服务,想在国内找到Paul Anka的音乐当然更难了。这个家伙在国内不是很有名,但是在美国和加拿大,稍微上点岁数的人都认识他,记得肉壳后来上外教课的时候,每次提到Paul Anka,老师都觉得眼前一亮。回来说,当时在网上搜索Paul Anka的时候,找到了一个叫Paul Anka的网友,他常年混在一个叫熊猫音乐网的网站。肉壳一下子就沉迷在这个网站了,站长老熊猫常年会在网站更新自己录制的音乐节目,网站下面的论坛里,大家也各种分享这各类爵士乐,轻音乐和英文老歌。肉壳就是在这个网站的熏陶下,开始喜欢并充实自己的爵士乐知识的,而肉壳之所以会开始喜欢上爵士乐,是因为初三的时候听到的Gleen Miller的In the Mood。虽然是纯音乐,但是肉壳就是这样走上了爵士乐的鉴赏道路了……当然后面开始喜欢Frank Sinatra什么的这里就不谈了,虽然对肉壳的影响很大,但是肉壳觉得还是不如这三首歌对肉壳的影响更深远。不过话说回来,听了Frank Sinatra唱的My Way,我还是更喜欢Sinatra的版本,毕竟这首歌就是Paul Anka为Sinatra写的……

今天大概就聊到这里,其实也没别的,就是想谈谈肉壳的音乐品味为啥会比较奇怪而已。而且,肉壳重新读了一下自己这几年的文章,基本都是技术文章(虽然也没几篇)。虽然独立域名博客已经不如以前(10年前)火热,但是喝了酒,多愁善感,自然就想写一点自己的事情。作为一个怀旧的人,现在看几年前的文章还是想要会心一笑的。既然从上学期开始养成规律生活的习惯。所以,再加一条规律其实也是很没有所谓的事情,从现在起,每个学期至少写一篇有关自己生活的文章吧。

为什么我要读这么多年书……

Ubuntu下安装程序卡在waiting to install的解决方案

肉壳最近打算给自己的台式机装Linux跑程序,安装Linux的艰辛就不说了,安装好之后在安装Chrome的时候,安装程序卡在了Waiting to install。导致这个问题的原因是因为系统中缺少依赖包,所以只要按装一下就好了。

首先,执行下面的命令,获取需要的依赖包

sudo dpkg -i google-chrome-stable_current_amd64.deb

之后再执行下面命令安装所需的依赖包

sudo apt-get install -f

最后再执行一次第一条命令,或者双击安装包安装即可。

如何给树莓派2安装TL-WN823N无线网卡的驱动

尝试给自己的树莓派2安装无线网卡驱动的时候,出了点小问题,不过搜索了一下,找到这样一篇帖子,可以解决我的问题。如果你也是用的树莓派,然后是用的是TP-Link的TL-WN823N的网卡的话,可以使用如下命令自动安装驱动

wget https://dl.dropboxusercontent.com/u/6008179/install-wifi.tar.gz
tar xzf install-wifi.tar.gz

然后可以使用下面命令查看使用说明

./install-wifi -h

或者直接使用下面命令安装驱动

./install-wifi

大神真多啊……

如何在没有ATA模式的主板上安装纯净Win7

新买了一台台式机,经过一番折腾,终于组装完成,结果装系统的时候发现,瞎了……主板没有ATA模式,我的U盘在iso的安装模式下找不到盘符,也就是说,不能手动加载sata的驱动。

所以,下载了老毛桃的PE系统来安装,结果发现,即使用纯净的iso也会被老毛桃的安装程序安装一堆推广软件,这对于我来说是不可忍受的。

最终找到了解决方法,最快的方法应该是进入PE系统,然后把iso解压到别的盘符,然后运行hdd installer,重启之后就可以安装了。

这篇文章没有写的太详细,主要是给自己留个底,怕忘了……如果你有不懂的地方,欢迎留言……

如何用最低的成本转播PlayStation 4到国内的直播平台

自从肉壳和基友团晚上PS4的GTA之后,就一直想要试试把我们的游戏和语音直播到网上去,但是由于网络条件的限制,只能悻悻作罢。不过现在我的网络条件好了很多,所以这个想法就又蹦出来了。所以刚刚搞了6个小时,终于把我的信号推去了斗鱼上……

http://www.douyutv.com/rokeer

PS4自带的转播功能其实也是很强大的,可以直接转播到Twitch和另外两个不存在的网站上……不过,想转播到国内网站上就没这么容易了,一个比较直观的解决方法就是用HDMI采集卡,然后把采集卡收集到的信息Push去stream上去。但是HDMI采集卡价格从几百块到上千块,真的是贵的买不起,便宜的不敢买。所以只能找找替代方案,查了很多资料,看了很多网站,终于找到了一个相对比较实惠的解决方案。就是通过PS4自带的直播到Twitch上的功能,通过某些手段,劫持到视频流信号,然后再推到斗鱼上面去。想实现这个功能,你只额外需要一件物品:

树莓派 2

如果你不知道什么是树莓派也没关系,其实就是一台廉价的小电脑,只要不到40美元就可以买到一台,刷个Linux系统进去,接上显示器就可以用了。当然,如果你用电脑的话,可以装Linux进去也可以,或者虚拟机装Linux貌似也可以。Windows的话,直接拉到最下面看连接,我自己没试过。

刷系统什么的不在今天的讨论范围内,直接开搞。首先,要安装NginX,负责接受视频流和推送。打开命令行执行下列命令

sudo apt-get -y install nginx
sudo apt-get -y remove nginx
sudo apt-get clean

首先安装nginx包,再删掉,目的是为了获得nginx的启动文件,然后还要手动清除/etc/nginx文件夹里面的内容。因为后面我们要用make去安装新版本的nginx,所以不清除原来的内容的话,新的文件是不会覆盖旧的文件的。

sudo apt-get update
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

安装必要的组建,如果有问题的话,可以再执行

sudo apt-get install -y curl build-essential libpcre3-dev libpcre++-dev zlib1g-dev libcurl4-openssl-dev lib

不过我在安装的时候,会发生找不到lib,以及后续找不到openssl的问题,所以还是建议只执行上面的安装。

cd /usr/scr
sudo git clone git://github.com/arut/nginx-rtmp-module.git
sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz
sudo tar xzf nginx-1.8.0.tar.gz
cd nginx-1.8.0

我们把自己下载的nginx 1.8和rtmp的module都放在了/usr/src文件夹下,你也可以放在别的地方,但是可能会影响到其他命令的执行,到时候要记得自己手动修改目录

./configure --prefix=/var/www --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_ssl_module --without-http_proxy_module --add-module=/usr/src/nginx-rtmp-module

注意,可能需要修改add-module的目录,如果你吧rtmp module放在其他的文件夹下了的话,然后执行

sudo mkdir -p /var/www

创建一个文件夹,用于放置一些网页文件

sudo make

这个时间会比较久,大概几分钟

sudo make install

安装,之后可以尝试执行

nginx -v
sudo service nginx start
sudo service nginx stop

查看nginx版本,启动服务,关闭服务。如果没有报错,就应该是已经安装上了。然后修改nginx的配置文件,位置应该是/etc/nginx/nginx.conf

user root;
#Root is only OK if the server is not public. Otherwise you need to increase security on your own.
# user www-data;
#use up to 4 processes if you expect allot of traffic. But this causes issues with rtmp /stat page and possibly pushing/pulling
#worker_processes 4;
worker_processes 1;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#if you want gzip enabled
#gzip on;
#gzip_disable “msie6”;

server {
listen 80;
server_name localhost;

# sample handlers
#location /on_play {
# if ($arg_pageUrl ~* localhost) {
# return 201;
# }
# return 202;
#}
#location /on_publish {
# return 201;
#}
#location /vod {
# alias /var/myvideos;
#}
# rtmp stat
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}

location /stat.xsl {
# you can move stat.xsl to a different location
root /usr/src/nginx-rtmp-module;
}

# rtmp control
location /control {
rtmp_control all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
rtmp {
server {
listen 1935;
chunk_size 131072;
max_message 256M;
ping 30s;
notify_method get;
application app{
live on;

# You can push this stream to an external rtmp server while accessible locally.
# If you experience artefacts and delays on external server lower the bitrate.
# There seems to be a bug. When watching local stream and pushing to remote, the remote
# stream become really weird with random blocks and strange shadows.(consider 1 one for now)
# push rtmp://ip-address-external-rtmp/app/stream;

# sample play/publish handlers
#on_play http://localhost:80/on_play;
#on_publish http://localhost:80/on_publish;
# sample recorder
#recorder rec1 {
# record all;
# record_interval 30s;
# record_path /tmp;
# record_unique on;
#}
# sample HLS
#hls on;
#hls_path /tmp/hls;
#hls_sync 100ms;

}
# Video on demand
#application vod {
# play /var/Videos;
#}
# Video on demand over HTTP
#application vod_http {
# play http://localhost:80/vod/;
#}
}
}

没有缩进,好丑……不过无所谓,这样配置就好了。其他的不多说,有两点要注意一下,第一是在rtmp里,有一行application app,后面的app一定不要改成其他名字,因为这是Twitch的视频流的推送标识(可能也不是这个词,总之不要改),其次,这个配置只是获取视频流并转发,后面我们可以用OBS来抓去并重新推送,当然,你也可以直接推送到斗鱼上去,只要application app里面live on;下面添加

push rtmp://send.douyu.tv/live/[STREAMKEY];

上面是斗鱼直播地址,[STREAMKEY]改成你的直播码。

然后记得

sudo service nginx start

启动服务,nginx就配置好了。这时候,如果你用浏览器直接访问你的服务器,比如http://192.168.0.16/stat 应该就可以看到一些内容,未来我们需要使用这个页面的内容来获取视频流相关的信息。至于如何获取服务器ip地址?ifconfig一下就知道了。

备注,按理说,机器重启之后,应该手动重启服务,或者写脚本自动启动,但是我在使用的时候,发现不手动重启也OK,所以就先不写教程了,后面的dnsmasq也有同样的问题。

然后我们开启系统的转发功能,修改/etc/sysctl.conf文件,设置net.ipv4.ip_forward=1,并执行

sysctl -p /etc/sysctl.conf

让更新生效。然后我们安装dnsmasq,执行

sudo apt-get install dnsmasq

就OK了。然后修改配置文件/etc/dnsmasq.conf,在相应位置添加,

address=/live.twitch.tv/192.168.0.16

live.twitch.tv是twitch的推送地址,192.168.0.16是我的服务器地址,不过只做这一步已经没有用了,而且我本人来讲,也不知道这一步是否是必须的,不过我做了,没有出现问题,所以就没有试不做会怎样。

sudo service dnsmasq start

启动服务就好了。

不过由于twitch现在修改了服务,所以只配置上面的dns解析是不够的,所以我们要执行

nslookup live.twitch.tv

可以查看live.twitch.tv都解析到哪里了。如果使用不了nslookup,输入

sudo apt-get install dnsutils

就可以安装nslookup命令了。然后,配置路由表的,用于把ip地址直接转发到服务器,因为我本人不是很懂iptables的配置,所以在网上找了三条命令。

sudo iptables -t nat -A PREROUTING -d 199.9.248.0/21 -p tcp --dport 1935 -j DNAT --to-destination 192.168.0.16:1935
sudo iptables -t nat -A PREROUTING -d 199.9.0.0/16 -p tcp --dport 1935 -j DNAT --to-destination 192.168.0.16:1935
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

前两条的作用是把ip地址转到我的服务器,最后一条是把结果转回去。我试了各种命令都不对,就在我快要放弃的时候,试了一下只输入

sudo iptables -t nat -A PREROUTING -d 199.9.248.0/21 -p tcp --dport 1935 -j DNAT --to-destination 192.168.0.16:1935

竟然成功了。如果你有兴趣,或者你比较懂的话,可以试试修改这个命令,我就懒得改了。另外,iptables的配置,重启服务器后,肯定要重新配置的,这个没有疑问。

至此,服务器设置完成。

然后我们只要手动配置PS4获取ip地址,子网掩码,网关和dns服务器都设置成咱们自己的服务器也就是192.168.0.16就可以了。

然后,我们就可以使用Twitch,推送我们的视频信号了,具体操作不讲了。等看到屏幕右上角的On Air就表示已经在推送了。这时候,我们回到http://192.168.0.16/stat ,刷新一下就可以看到我们的nginx接受到了视频流的推送。

然后我们就可以用OBS接收这个视频流,地址格式是 rtmp://192.168.0.16/app/livexxxxxxxxxx,这个livexxxxxxxx就是你在http://192.168.0.16/stat看到那串码。然后你就可以用OBS,处理你的视频并推送到斗鱼直播上了。

就这么点事情,我前前后后搞了6个小时,不过终于搞定了,也是不错,如果你有什么问题,欢迎留言。转载请标明出处。

最后,我要感谢以下网页的作者,没有你们,我也不可能完成这件事,多亏了以你们的文章,我才能解决这些棘手的问题。Thanks!

http://bbs.a9vg.com/thread-4160686-1-1.html

http://bbs.a9vg.com/thread-4199530-1-1.html

http://pkula.blogspot.com/2013/06/live-video-stream-from-raspberry-pi.html

http://yiqingsim.net/post/103165692292/setting-up-dnsmasq-as-a-dnsdhcp-server-on-a

https://phelps.io/local-ps4-streaming/

目前这篇文章,没有排版,没有插图,有时间再做吧,已经凌晨3点了,睡觉了……

http://www.douyutv.com/

http://www.douyutv.com/