视频转码的实时转码和离线转码区别
由于视频的编码格式,封装协议非常多,在视频播放的过程中,会有很多编码不兼容的问题。这种情况下就需要对视频进行转码。
视频转码分为离线转码和实时转码,它们的工作方式和具体的业务要求是完全不同的,其应用的场景也是完全不一样的。所以我们在项目中,如果需要对视频进行转码,需要搞清楚具体的视频转码是要应用在哪种场景下,需要解决什么问题。
离线转码 离线转码的应用非常广泛,我们日常在视频网站追剧,都需要对视频进行转码。还有我们都有这样的经历,从网上下载了一个视频文件,结果无法播放,这都需要对视频进行转码后,让原来的视频适合现有的播放器。
离线转码一般针对视频文件,也就是说我们有一个 ...
GAN网络训练技巧
当判别网络能力过强,传递给生成网络的“提示”信息太少,导致训练网络梯度消失,无法学习;
当判别网络能力太差,颠倒是否,训练网络无法稳定学习,还会扬长避短,“钻空”判别网络弱点,丢失生成样本的多样性(模型崩溃);
判别器因监督学习而提升,生成器因判别器而提升,同时两者都不能把对方放倒,一旦完全放倒对方,自己就独孤求败了,无法再次提升技能。
从原理上来说,生成器和判别器从一开始都是非常弱的,因此一般不会在训练一开始两者损失就非常剧烈的波动。在训练一段时间达到稳定期后,生成器和判别器的损失都应该在一个小区间内波动,而不会有明显的持续上升/下降趋势。 如果生成器损失持续明 ...
Pytorch的Variable
pytorch两个基本对象:Tensor(张量)和Variable(变量)
其中,tensor不能反向传播,variable可以反向传播。
tensor的算术运算和选取操作与numpy一样,与numpy相似的运算操作都可以迁移过来。
Variable variable是一种可以不断变化的变量,符合反向传播,参数更新的属性。pytorch的variable是一个存放会变化值的地理位置,里面的值会不停变化,像装糖果(糖果就是数据,即tensor)的盒子,糖果的数量不断变化。
在PyTorch中计算图的特点总结如下:autograd根据用户对Variable的操作来构建其 ...
音视频编解码常用知识
视频播放器原理 视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如下:
解协议的作用,就是将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解 ...
tmux
Tmux 是 Terminal Multiplexer 的简称,它是一款优秀的终端复用软件,类似 GNU screen,但比screen更出色。tmux来自于OpenBSD,采用BSD授权。
Tmux 可用于在一个终端窗口中运行多个终端会话。不仅如此,还可以通过 Tmux 使终端会话运行于后台或是按需接入、断开会话,这个功能非常实用。
Tmux安装123sudo apt-get install tmux # ubuntuyum install -y tmux # centostmux -V # 查看版本
基本配置,打开配置文件 ~/.tmux.con ...