`
rcfalcon
  • 浏览: 228557 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
FFMPEG命令行工具目前无法针对视频实时流进行转码,而我们可以用它的新版本提供的支持TCP SERVER的特性来实现这一功能。实现边录边用FFMPEG提供的命令行工具进行转码。(实践证明,FFMPEG 的SDK针对实时流开发比较繁琐,命令行工具相对来说稳定) 我们将实时流录制成正在增长的文件,这样问题就变成了FFMPEG如何针对正在增长的视频文件转码。(首先我们保证视频格式是可以支持正在增长文件解码,这不在本文的讨论范畴) 而我们如果直接使用它对正在增长的文件转码,我们会发现FFMPEG转码到文件末尾(转码速度比录制速度快)就会退出。我们要做的就是在FFMPEG转码到末尾时如何将其挂起 ...
WCF默认配置文件中,给定的数组大小为65536, 若传输数据数组元素超过该数,则会异常。 解决方式: 服务端增加配置 <behaviors> <serviceBehaviors> <behavior name="metadataBehavior"> <serviceMetadata httpGetEnabled="false" /> <serviceDebug includeExceptionDetailInFaults="tru ...
python服务端:使用SimpleXMLRPCServer 代码如下: from SimpleXMLRPCServer import SimpleXMLRPCServer def getTest(): return 'test message' if __name__ == '__main__' : server = SimpleXMLRPCServer(('localhost', 8888)) server.register_function(getTest, "getTest") server.serve_foreve ...
今天编写一个异步通信框架的,异步派发任务,单路并发, 与直接INVOKE相比的好处是可以使任务的执行代价根据时间均匀化, 请看代码 public class ServiceTask { public ServiceTask(Action action) { _action = action; } private Action _action; public void Execute() { _action.Invoke( ...
当一个程序员有“洁癖”的时候,它的代码才会越写越好。 虽然不敢说自己水平有多高,但是自己写代码也越来越染上洁癖, 不允许自己的代码中有一丝敷衍或者是架构的别扭。 每个细节都要优美,考虑设计模式。每个逻辑都考虑如何复用,虽然代码写起来可能比较慢,但是出自自己手下的代码一定要是“精品”。 这里奉上网上一个兄弟提供的WPF中数据绑定的属性精简写法, 本来很长一段,如下。微软官方代码生成的例子 public string Password { get { return this.PasswordField; ...
最近一直专注于忙研发管理,谈一点小体会吧。 1. 要将压力下发到小组成员,同时要敢于放权 2. 压力下发的同时必须界定每个人的责任范围 3. 边界交界处必须指定牵头人,避免互相推诿的情况 4. 必须学会批评,且要严厉 5. 文档一定要时刻与开发同步,否则将导致项目失败。产品化进程中的重点 6. 越早参与评审,越能对质量把控得好。 7. 管理者必须敢于迈出关键步伐,推进项目进程 8. 必须制定研发计划,计划必须严格的执行(说的容易做的难) 9. 将客户关注点放在第一位(做技术的容易对客户产生鄙视心理) 10. UI需要提高重视程度
计算机CPU体系架构的设计RISC最终战胜了CISC,生成如今PC机的主流。 软件架构设计也一样,在完成同样事情的情况下,力争越简单。 今天晚上和原公司首席科学家及老总促膝长谈到2点钟才回家, 将我自认为比较满意简洁的设计砍得七零八落,最终得出一个极为精简优雅的架构, 得出设计理念收获如下: 1. 流水作业级调度基于文件系统/共享文件系统最为简单,可移植度也最高(语言/平台); 2. 数据和索引/关联数据是一个整体,尽量不要设计上让他们分开(尤其是数据库ID映射到资源路径的方式),应该尽量考虑让它们存储方式也统一,然后数据库再做冗余。 3. 文件命名应该严格推敲,遵循 ...
ffmpeg在转码的时候可以指定使用线程数, 而对于同一个源、使用同一台转码机器,到底如何配置线程数量才能达到比较好的效率,我们做了一次简单的实验,结果如下: 转码机器: 4核8线程HP DL380 G7服务器。 thread是每个任务的线程数,task是并发跑的转码任务数, time是耗时,e是平均每个任务用时(time/task) 能看出,跑8个线程,并发跑2个任务效率最高。 基本上可以得出结论,任务线程数 = CPU线程数得到比较高的效率,而此时CPU未占满,如果这样并发跑2个转码任务,可以得到最好的效率。
最近要改一段别的公司的代码,我疯了啊! 一个while循环里面逻辑500行啊! 临界区他用文件啊! 临界区的锁他再用一个文件啊! 两个进程访问临界区他还开两个临时文件啊! 日志文件还不能丢啊!还有逻辑耦合在里面啊! 数据库操作从来不封装啊! 每个函数都生连数据库啊,每个函数里都硬写了数据库用户名和密码啊! 从来没有配置文件啊! 所有的东西都是硬编码啊!! 连socket都要先把本机IP发过去啊! 这程序部署在N台机器就要改N个版本啊! 补丁上面还打补丁啊,一看代码就是狗咬的啊! 到处都是sleep啊! 程序还到处 ...
随着架构的工作越来越具体,已经不局限于软件结构方面了。 更多是深入到计算机体系知识,包括体系结构、组成原理、网络原理。 书到用时方恨少,完全是本科应该学的知识,可是就是不牢固。 SO,决定回归,作为一个系统架构师,重新捧起曾经不屑的书,以一个科学体系的态度重新学习。 曾经把自己定位一个纯软件人员,现在真正的体会到一切都是无法分割的。 所谓大道至简,殊途同归,莫过如此。回归,作为一个计算机学科的学子,而不是一个纯粹的码农。
在 apache中配置Alias,如下格式 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> ...
两个方便的DOMDocument小函数 1. 取唯一节点的值 function getSingleValue($doc,$node){ return $doc->getElementsByTagName($node)->item(0)->nodeValue; } 2. 创建孩子节点 function createChild($doc,$father,$childname,$value="",$cdata=false){ $c = $doc->createElement($childname); if($v ...
一个JAVA工程,在原环境(LINUX下)跑得好好的。拷到新的环境(WIN XP)以后,部署在tomcat,我修改了一下proxool配置文件(保证没改错,就改了一下指向的数据库IP),之后就一直说找不到指定的连接池。 特别崩溃的做了N多的实验,都找不到问题所在。 最后居然! 居然! 居然是我用utral edit修改proxool配置文件的时候,UTF8格式默认加了BOM头。 而proxool的解析程序居然解不出来这个配置文件,而且还不报错! 非常值得注意啊!proxool的源代码没有处理BOM头!所以务必不要用UE修改它的配置文件。
import re def getFromPatten2(patten,src): p = re.compile(patten,re.S) all = p.findall(src) rst = {} for matcher in all: rst[matcher[0]]=matcher[1] return rst def readConfig(): f = open('config.txt','r') content = f.read() content +=&qu ...
经过对videologger的进一步了解,其架构很有意思的将一些插件处理为C/S模式。 比如语音识别,其是另外跑一个名为softsound的SERVER。在videologger安装它的客户端插件。 最终的数据处理方式就是videologger解出裸数据(比如softsound应该是音频PCM),TCP的形式发送到softsound server。softsound server进行集中运算,然后将结果返回VL,或者自己处理存储。 个人认为优势有下: 1. 共用了vl的demux、decode模块,源数据永远只过一次解码器; 2. 集成在vl平台,享受平台优势(如调度等 ...
Global site tag (gtag.js) - Google Analytics