- 博客(11)
- 资源 (22)
- 收藏
- 关注
原创 新入行程序员成长的一点思考
最近接触刚毕业的学生比较多,本科生和研究生都有,总感觉他们现在和刚毕业的自己很像,一个人摸索,别人的建议只是建议,悟性似乎还没有到那个境界,似乎必须经历过,才能长大,难道成长有没有捷径?先说说在做Android的几个学生身上碰到的问题:1、数据库操作,db打开后没有关闭,cursor游标用完没有关闭;2、生搬硬套MVC/MVP,接口定义混乱,说不清接口作用或者参数作用;
2016-08-26 14:00:10 1512 5
原创 Darwin Streaming Server 支持UDP打洞
RTSP客户端点播Darwin 视频时,SDP协商后的客户端端口可能是在NAT后面,所以需要Darwin支持NAT打洞的功能,从Darwin的源码看,官方的源码是不支持这个能力的。通过抓取VLC客户端的包发现,VLC在播放RTSP流时,两次SETUP(音频流和视频分别协商端口)之后,会发送4个UDP打洞的包,但Darwin没有接收这些包,并且根据这些包来源的端口修改远端RTP和RTCP
2016-08-18 11:39:04 1126 6
原创 Android Camera预览时输出的帧率控制
如果使用MediaCodec硬编码H264,可以使用下面的方法控制编码输出的帧率: MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", width, height); mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT,
2016-08-16 14:24:28 28197 6
原创 Android手机H264软编码参数优化
做了一段时间的视频后,最先碰到的是花屏,解码端丢包的花屏,先是通过抓取编码后的BITMAP,发现解码出来就是花屏的,所以考虑优化编码来减少因为丢包产生的花屏;另外调整丢包策略规避解码花屏的问题。1、X264编码参数调整:H264 FF_PROFILE_H264_BASELINE、 FF_PROFILE_H264_MAIN两种编码差异,其中最明显的差异是profile_idc_baselin
2016-08-16 13:48:20 4842 2
原创 GB28181协议支持的H264的PS封装实现
1、写在前面:最开始接触H264的PS封装的时候,参考的是:关于对H264码流的PS的封装的相关代码实现 , 确实是很有帮助,但完全参照这个实现,发现问题也很多,主要还是对MPEG213818的封装协议理解不深产生,所以我们在参考代码实现时,还是需要对原理做深入细致的分析,特别是封装涉及到bit级别的配置,一个bit配错了,可能就播放不了,所以记录下,做个备份。2、封装需要基本了解的概念:
2016-08-16 11:24:59 14021 1
原创 在Spydroid-ipcamera基础上做推流的实现之二
接上一篇,已经清楚RTSP推流需要发送的RTSP请求消息,所以我们实现一个RTSP的客户端,完成这些请求消息,并将H264的RTP包推送到指定的RTSP服务器即可,这个客户端同时推送过Darwin和Crtmp-server两个RTSP的服务端,来验证推流客户端的功能实现。下面是我们实现的RtspPushStreamClient推流客户端类:package net.majorkernelpa
2016-08-15 13:53:08 3188 11
原创 Darwin推流存储实现介绍 之二
根据上文确定的方案,我们会在每一个推流的会话建立时,增加一个自定义的Output对象,用来实现吧接收到的RTP包写到文件中。首先,我们在RTSPReflectorOutput.cpp中,参考RTPSessionOutput类定义一个RTPSessionSaveOutput类:class RTPSessionSaveOutput: public ReflectorOutput{
2016-08-13 14:47:14 1416 1
原创 在Android采集视频过程中增加水印功能实现
在Android采集视频过程中增加水印,并且水印包含一个变化的时间戳,这里考虑方案实现的时候,就想到了ffmpeg,ffmpeg包含很多filter能实现水印添加的功能。基本实现方案是,Camera预览 -> 得到预览帧的bitmap -> 给bitmap通过ffmpeg 添加水印 -> ffmpeg把bitmap使用h264编码 -> 写文件。其实ffmpeg添加水印功
2016-08-12 16:22:13 11576 8
原创 Darwin推流存储实现介绍 之一
给Darwin服务器推送的流能否存储为文件,答案是肯定的,只是什么时候存,怎么存,存储的时机问题需要对Darwin的源码好好分析。
2016-08-12 16:06:38 1335
原创 在Spydroid-ipcamera基础上做推流的实现之一
在github上搜索RTSP 和Android, 你一定能找到Spydroid-ipcamera的项目,他能在局域网内共享手机的Camera采集的视频画面,俗称将手机改造成网络摄像机。看过Spydroid-ipcamera的代码,你会发现手机原来充当了一个RTSP Server的角色,一旦有通过rtsp的点播请求过来,则开启手机摄像头,并把编码后的H264视频和AAC的音频数据发送到通
2016-08-12 15:47:09 6851
原创 ffplay.c数据结构分析
最近在做流媒体播放器的优化,参考了ffplay.c的代码,主要对存储和流程上做下解剖。数据存储15M的QUEUE#define MAX_QUEUE_SIZE (15 * 1024 * 1024)typedef struct MyAVPacketList { AVPacket pkt; struct MyAVPacketList *next
2016-08-02 11:20:29 933
可信计算TPM标准2015
2020-11-11
crtmpserver创建指南和程序包
2015-11-19
领域驱动设计软件核心复杂性应对之道--- 领域驱动 的必读书
2009-08-01
设计模式可复用面向对象软件的基础
2009-03-31
数字电视一体机的软硬件架构参考模型设计
2009-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人