mosh:连接不好时的省心ssh替代工具

mosh可以解决如下坑问题:

  • 网络断断续续
  • 网络经常变动
  • IP出现变化
  • 经常进行休眠
  • ssh经常卡死
  • ssh返回缓慢
  • Ctrl+C缓慢无效

 
虽然有screen,但是断线重连是很痛苦的。而且经常一连就是30秒。。。
这时就需要mosh了。
 
除了Win,支持各种Linux和类Linux环境,包括安卓等。
安装不难:
服务器端:
Ubuntu:

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:keithw/mosh
$ sudo apt-get update
$ sudo apt-get install mosh

OSX:
https://mosh.mit.edu/mosh-1.2.4-3.pkg
安装后需要设置locale。不设好会报错。
例如,连接某端口:
mosh --ssh="ssh -p 5120" root@yourname.com
 
官网:http://mosh.mit.edu/

【ACI字幕组联盟服务器】联盟服务器开始内部测试

各位联盟成员:

联盟服务器开始内部测试。

如果需要测试名额,请联系ACI字幕组 cdc[at]chineseaci.com 。

使用中的任何问题请第一时间提出。

Beining
CDC-ACICFG

P.S:按理说本月16日(EDT)应该出月度审计报告,但是由于实际筹款时间、运行时间、测试时间、费用发生时间的区别,我在考虑是不是以后每月换个日期发报告。但这个报告肯定不会差。



维护正常BT秩序,联盟服务器彻底封杀迅雷客户端。

和猫打交道——所有关于视频无损合并(主要是H.264)的问题(Jul.5更新:更新Win下的办法以及核心问题)

这个问题小白么?的确是,但是问的人还很多很多。

这里把我知道的所有的常见不常见问题和使用场景都罗列一下,以及我感觉的优缺点,一并列出。

我们只讨论无损合并。

有损合并永远可以先转换成MPG然后合并,最终转码。这就失去意义了。

1.Win下怎么无脑合并H.264视频?

我不知道为什么大量的所谓合并软件还在使用有损合并,虽然无损合并其实特别简单。 

当然不能忘记这货: 

下载地址自寻。这俩东西都好找。

更新:

硕鼠的技术人员友好的告诉了我硕鼠合并的核心。

核心是flvbind+MP4Box,而不是ffmpeg。因为ffmpeg太大。(Linux下一个ffmpeg的binary就26M左右)

用法:

flvbind all.flv 1.flv 2.flv to bind 1.flv and 2.flv

 

2.Linux呢?

1)FFmpeg。

我估计http://www.ffmpeg.org/faq.html#How-can-I-concatenate-video-files_003f  已经吓尿了大部分人,http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files 又有些误导,让大家以为FFmpeg只能合并avi。甚至有提出先mux成ts流然后再concat的Hentai存在。。

非也。

对于MPG文件:

ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

 

清晰简单。

官方没直接写怎么处理H.264,只给了这个不明不白的例子:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

 

估计这就是TS说的来历。

其实这事根本不用那么复杂:

看Biligrab的代码:

  

  f = open('ff.txt', 'w')
    ff = ''
    os.getcwd()
    for i in range(vid_num):
        ff = ff + 'file \'' + str(os.getcwd()) + '/'+ str(i) + '.flv\'\n'
    ff = ff.encode("utf8")
    f.write(ff)
    f.close()
    print('Concating videos...')
    os.system('ffmpeg -f concat -i ff.txt -c copy "'+filename+'".mp4')
    os.system('rm -r ff.txt')
    for i in range(vid_num):
        os.system('rm -r ‘+str(i)+'.flv')

 

换成人话:

例如,你有这几个flv文件要连在一起:

1.flv 2.flv 3.flv

你要做的是:

建立一个文本文件,例如ff.txt:

在里面写:

file ‘路径,同目录可以省略/1.flv’
file ‘路径,同目录可以省略/2.flv’
file ‘路径,同目录可以省略/3.flv’

 

然后去shell里面运行:

ffmpeg  -f concat -i 路径/ff.txt  -c copy out.mp4

 

(-i:设定输入文件 -f:设定编码器,这里使用concat,无损合并方法 -c 流选择器,这里选择所有流 最后可以选择任何可以封装的格式,不一定是MP4)

[notice]参数顺序不能错,否则会拉肚子![/notice]

速度几乎是你硬盘的IO速度。

优点:几乎不拉肚子

缺点:需要建立一个文件

2)MP4Box法:

MP4Box -cat file1.mp4 -cat file2.mp4 output.mp4

 

m4v文件也可以。

优点:简单明了可靠

缺点:不支持flv,呵呵呵呵。。。

3.歪门邪道有没有?

有啊。

4)Mencoder法

mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi

 

不保证不拉肚子啊。

MPEG1,MPEG2用这个会很不错。

5)FLVCopyCat

https://github.com/shinohane/FLVCopyCat

本来想用,但是这个东西的timestamp貌似会拉肚子。

风险自担。

参考资料:

http://forum.doom9.org/archive/index.php/t-93240.html

http://www.flvcd.com/teacher2.htm

http://www.onlinedown.net/soft/65496.htm

http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files

http://www.ffmpeg.org/faq.html#How-can-I-concatenate-video-files_003f

解决B站不能黑科技偷跑视频

    •  根据近期相关情况, 审核中视频改为UP主不可观看,通过审核后正常浏览。暂时关闭日志、留言板功能。带来的不便,尽请谅解!

 
 
蛋碎。审核从来就不给力,还不给人cid。这什么日子。
其实这个办法是B站黑科技的一种,但是由于威力太大几乎没人敢用:
通过API,查看离这个aid最近的cid,然后一点点往后试验。
会花费一些时间,但有效果。
有aid和cid了,那么怎么玩都可以了。
 
或者,就MukioplayerPlus自建,没什么大不了的,是吧?

Serious Business:tucao.cc(c站)的视频解析

protected function getXMLUrl(_arg1:String, _arg2:String):String{
var _local3:Date = new Date();
var _local4:Number = _local3.getTime();
var _local5:String = Math.round((_local4 / 1000)).toString();
return (((((((("http://www.tucao.cc/api/playurl.php?type=" + _arg1) + "&vid=") + _arg2) + "&key=") + this.calcKey(_arg2, _local5)) + "&r=") + _local5));
}
private function calcKey(_arg1:String, _arg2:String):String{
var _local3:int = parseInt(_arg2, 10);
_local3 = (_local3 ^ 2774181285);
var _local4:int = parseInt(_arg1, 10);
var _local5:int = (_local4 + _local3);
_local5 = (((_local5 < 0)) ? (-(_local5) >> 0) : (_local5 >> 0));
return ((("tucao" + _local5.toString(16)) + ".cc"));

Into human language:
http://www.tucao.cc/api/playurl.php?type=sina&vid=130558387&key=tucao1fc5eb9.cc&r=1398919729
晚上闹心懒得看代码了。这个藏着掖着啊。
 

揭秘:如何找A、B站的sina源地址(优酷、QQ不保证)(没写呢)(其实是半夜随笔)

按理说大晚上的应该给人答疑。但是提不起劲。
这个就像找到了一个新的突破封锁的方法:公开就失效,不公开又不符合精神。
就我而言,即使是盗源,也不会需要原始播客地址。因为vid就可以推出原始播放地址。down一下改传吧。
这个缺德审查制度已经弄成这样了,咱们还是别自己拆自己的墙了吧。
留言私下问吧。