C++ rtmp livestream ZeroC ICE OpenCV Media

海阔天空 张翼飞翔

我的学习笔记。--我爱这里,因为无广告的骚扰。
随笔 - 80, 文章 - 2, 评论 - 126, 引用 - 0
数据加载中……

置顶随笔

[置顶]扑克牌图像识别技术方案 V2.0 (TensorFlow方案)

     摘要: 【原创】2019.10.08 前言 TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。 节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。 T...  阅读全文

posted @ 2019-10-30 15:43 ZhangEF 阅读(17) | 评论 (0)编辑 收藏

[置顶]JSMpeg 低延时H5直播

     摘要: 【原创】 2019.09.05  JSMpeg项目地址:https://github.com/phoboslab/jsmpegJSMpeg 是一种采用Javascript解码音视频的技术,可用于视频直播或点播。 首先,我们为什么要用JSMpeg技术?HTTP-FLV技术在IOS系统下不被支持。WebRTC技术兼容性差。HTTP Live Streaming ...  阅读全文

posted @ 2019-09-07 18:33 ZhangEF 阅读(179) | 评论 (0)编辑 收藏

2019年11月6日

OpenCV设置摄像头参数 (Python 代码)



import
cv2
video = cv2.VideoCapture(0) # 0 700 701 'f:/tmp/src2.f4v'
# 设置摄像头参数
video.set(cv2.CAP_PROP_FRAME_WIDTH, 1080) # 宽度
video.set(cv2.CAP_PROP_FRAME_HEIGHT, 960) # 高度
video.set(cv2.CAP_PROP_FPS, 30) # 帧数
video.set(cv2.CAP_PROP_BRIGHTNESS, 1) # 亮度 1
video.set(cv2.CAP_PROP_CONTRAST,40) # 对比度 40
video.set(cv2.CAP_PROP_SATURATION, 50) # 饱和度 50
video.set(cv2.CAP_PROP_HUE, 50) # 色调 50
video.set(cv2.CAP_PROP_EXPOSURE, 50) # 曝光 50

posted @ 2019-11-06 11:49 ZhangEF 阅读(7) | 评论 (0)编辑 收藏

2019年10月30日

扑克牌图像识别技术方案 V1.0- OpenCV方案

     摘要:     技术目标: 通过摄像机提供的实时视频,分析视频画面中的扑克牌,实现程序自动识别扑克牌功能。最终淘汰通过扫描仪和条形码去扫描扑克的旧技术。 技术要点: l 识别扑克的位置 l 识别扑克的数字 l 识别扑克的花色 l 提高识别率 实现方法: 技术基础:开源的OpenCV库、Python的numpy数据分析库。其中O...  阅读全文

posted @ 2019-10-30 15:47 ZhangEF 阅读(8) | 评论 (0)编辑 收藏

扑克牌图像识别技术方案 V2.0 (TensorFlow方案)

     摘要: 【原创】2019.10.08 前言 TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。 节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。 T...  阅读全文

posted @ 2019-10-30 15:43 ZhangEF 阅读(17) | 评论 (0)编辑 收藏

2019年9月7日

JSMpeg 低延时H5直播

     摘要: 【原创】 2019.09.05  JSMpeg项目地址:https://github.com/phoboslab/jsmpegJSMpeg 是一种采用Javascript解码音视频的技术,可用于视频直播或点播。 首先,我们为什么要用JSMpeg技术?HTTP-FLV技术在IOS系统下不被支持。WebRTC技术兼容性差。HTTP Live Streaming ...  阅读全文

posted @ 2019-09-07 18:33 ZhangEF 阅读(179) | 评论 (0)编辑 收藏

wowza流媒体服务器部署笔记


好久没有用wowza服务器了,现在又要重新部署,时间长忘记了部署方法了。网上找资料版本都对不上。搞了半天终于搞好了,重新整理一下笔记。
wget https://www.wowza.com/downloads/WowzaStreamingEngine-4-7-7/WowzaStreamingEngine-4.7.7-linux-x64-installer.run
sudo chmod +x WowzaStreamingEngine-4.7.7-linux-x64-installer.run
sudo ./WowzaStreamingEngine-4.7.7-linux-x64-installer.run
cd /usr/local/WowzaMediaServer/bin
./startup.sh
然后不停回车,直到输入注册码. 注册码没有永久的,要么购买,要么免费申请申请一个。
官网注册账号https://www.wowza.com/pricing/trial
申请标准版license 30天试用, 注册完毕后会有个邮件把License发送到你的邮箱里面。
这里有个坑,申请开发版本("developer trial")的注册码不能用在这个版本安装包上。所以,记得要申请 "standard trial"
打开网页http://server_ip:1935/
有看到Wowza Streaming Engine 4 Trial Edition (Expires: Jun 22, 2016) 4.0.3 build10989代表啟動成功
这里有个坑,因为rtsp默认554改成了1935端口,  所以rtsp播放端口要改成1935,不然播不出来。
测试点播vod:
rtmp://server_ip/vod/mp4:sample.mp4
rtsp://server_ip:1935/vod/mp4:sample.mp4
推送直播流:
rtmp://server_ip/live/abc
播放RTSP视频直播流:
rtsp://server_ip:1935/live/abc
播放RTMP视频直播流:
rtmp://server_ip/live/abc
后台管理:
http://server_ip:8088/enginemanager/
evan
123---
 

posted @ 2019-09-07 18:24 ZhangEF 阅读(19) | 评论 (0)编辑 收藏

2017年5月9日

gdb 使用 笔记

gdb带参数: "gdb --args [app] [-param]" b 设置断点: "b src/aa.cpp:10" i 查看(断点) "i b" d 删除断点号 “d 4”; “d 2-10” dis 禁用断点号: "dis" ; "dis 4" en 启用断点号: "en"; "en 4" r 运行 l 列出代码 n 运行一行 s 单步进入 finish 跳出 c 继续 p 打印 "p buf"; "p/x buf"; "p/c buf" x 内存 "x addr"; "x/4 addr"; "x/4xb addr"; b:Byte w:4Byte h:2Byte q 退出 attach [pid] 跟进fork进程 # ./objs/srs -c ./conf/edge.conf # gdb -args ./objs/srs -v # gdb -args ./objs/srs -c ./conf/edge.conf

posted @ 2017-05-09 17:05 ZhangEF 阅读(68) | 评论 (0)编辑 收藏

2015年8月24日

基于flashplayer的视频播放优化

本文中如果无特别说明的地方,传输协议都是RTMP,服务器是FMS,播放器指的是Flashplayer。


问题:直播延大
原因1:编码参数未优化
解决1:从编码参数上可以减小视频关键帧间隔、减小带宽、将H.264编码改VP6编码或H.263编码。
原因2:服务器端缓冲数据过大
解决2:可以设置FMS参数,减小服务器端缓冲。
原因3:播放器端缓冲设置过大导致延时。
解决3:可以减小播放器缓冲到0.1秒,或设置零缓冲。
原因4:网络节点不稳定。
解决4:找ping值偏差稳定、不丢包的节点做边缘服务器。制作工具监控各个视频边缘服务器的带宽使用和连接数。

问题:直播延时越播越大,刚开始延时正常,播放一段时间后可以累积到30秒以上的延时。重连后延时又恢复正常。
原因1:网络抖动导致播放器缓冲增加,缓冲数据不能及时播放,反复累积使延时增加。
解决1:播放器设置最大播放缓冲,当缓冲过大的时候会加快播放速度5%左右。使缓冲数据快速播放完毕来减小延时。
如果加快播放速度仍然赶不上延时累积速度,可在编码中嵌入timecode,用来检查延时,当播放器端检查到延时很大,则丢弃缓冲数据,播放最新内容。
原因2:播放器端下行带宽不足。
解决2:增加客户带宽。

问题:回放播放过程中,反复加载视频
原因:视频采用的是可变码率(VBR)编码。 应该改用固定比特率模式(CBR),CBR模式可以限制最大瞬时码率,从而使视频播放更加平缓。
解决方法:编码参数限制最大码率,或更改为恒定码率。

问题:回放播放缓冲时间长,而且加载缓冲次数比较频繁。
原因:如果播放器的缓冲参数设置过大,会导致加载视频速度慢;如果设置太小会导致反复缓冲。这是2个相互矛盾的问题。而设置固定缓冲不能同时解决以上2个问题。
解决方法:利用编程来实现0.1秒缓冲立即播放,然后边播放边持续增加缓冲,缓冲大小不固定。同时解决以上2个问题。

问题:回放拖拽操作后,视频会停留很久才开始播放。
原因:拖拽后,播放器需要找到一个最近的关键帧才能开始播放。默认关键帧间隔10秒。如果刚好拖拽到一个关键帧的位置,则可以快速播放。否则会导致随机延迟1-9秒播放。
解决:减小关键帧间隔到2秒。

问题:回放往前面拖拽,重新观看,又需要重新加载视频
原因:视频数据在播放完毕后被立即清理。每次拖拽都从服务器请求数据。
解决方法:开启智能搜索。如果搜索的内容已经下载过,则不从服务器请求数据,拖拽后0.5秒即可播放。智能搜索可降低服务器负载并改进搜索速度。

问题:视频画面被拉伸,有锯齿。
原因:播放器尺寸和视频尺寸不一致导致画面锯齿。
解决方法:设置Video.Smoothvideo属性,平滑拉伸,从而提高画质。或将播放器宽高和视频尺寸设置一致。

问题:回放http视频,需要下载完毕才开始播放。
原因:metaData保存在视频文件尾部,播放器需要下载到metaData才能播放
解决方法:用 mp4box 或 qt-faststart 工具修复即可。

posted @ 2015-08-24 11:42 ZhangEF 阅读(641) | 评论 (2)编辑 收藏

2014年4月21日

PAL NTSC 制式 电视标准

     摘要: PAL NTSC 制式 电视标准  阅读全文

posted @ 2014-04-21 13:35 ZhangEF 阅读(118) | 评论 (0)编辑 收藏

2013年7月17日

Flex4 设置Flash Player版本

     摘要: 下载新版本的playerglobal.swc,放到对应的文件夹 例如如果下载的是11.5版本的,就放到 [app root]\sdks\4.0.0\frameworks\libs\player\11.5\
  阅读全文

posted @ 2013-07-17 14:08 ZhangEF 阅读(155) | 评论 (0)编辑 收藏

2013年6月10日

尼康镜头标识

     摘要: 尼康镜头标识 VR ED AF-S
  阅读全文

posted @ 2013-06-10 11:45 ZhangEF 阅读(95) | 评论 (0)编辑 收藏

2013年4月3日

一些照相机名词 CCD COMS 全画幅 APS-C画幅 1/3英寸CCD

     摘要: 一些照相机名词 CCD COMS 全画幅 APS-C画幅 1/3英寸CCD  阅读全文

posted @ 2013-04-03 10:06 ZhangEF 阅读(1675) | 评论 (0)编辑 收藏

2013年3月20日

HD-SDI YPbPr HDMI DVI 传输接口区别

     摘要: 真正意义上的高清接口包括HD-SDI、YPbPr、HDMI、DVI这几种,而从表1中可以很清晰地看到,在目前的高清数字接口中HD-SDI、 HDMI等接口各自的优势  阅读全文

posted @ 2013-03-20 17:37 ZhangEF 阅读(1517) | 评论 (0)编辑 收藏

2012年12月1日

Android权限列表

     摘要: Android权限列表  阅读全文

posted @ 2012-12-01 11:10 ZhangEF 阅读(197) | 评论 (0)编辑 收藏

2012年11月28日

TS流的解码过程-ES-PES-DTS-PTS-PCR

     摘要: 在ES层,与同步有关的主要是视频缓冲验证VBV(Video Buffer Verifier),用以防止解码器的缓冲器出现上溢或下溢;在PES层,主要是在PES头信息里出现的显示时间标签PTS(Presentation Time Stamp)和解码时间标签DTS(Decoding Time Stamp);在TS层中,TS头信息包含了节目时钟参考PCR(Program Clock Reference),用于恢复出与编码端一致的系统时序时钟STC(System Time Clock)  阅读全文

posted @ 2012-11-28 15:10 ZhangEF 阅读(1055) | 评论 (0)编辑 收藏

2012年9月24日

Android源码编译的错误处理

     摘要: Android源码编译的错误处理  阅读全文

posted @ 2012-09-24 16:32 ZhangEF 阅读(305) | 评论 (0)编辑 收藏

2012年5月4日

演示volatile 关键字作用的一段C代码

     摘要: VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化  阅读全文

posted @ 2012-05-04 10:24 ZhangEF 阅读(264) | 评论 (1)编辑 收藏

2012年4月14日

单反数码相机和普通数码相机的区别

     摘要: 单反数码相机和普通数码相机的区别  阅读全文

posted @ 2012-04-14 22:02 ZhangEF 阅读(193) | 评论 (1)编辑 收藏

2012年3月31日

ubuntu 安装samba服务器

     摘要: ubuntu 安装samba服务器  阅读全文

posted @ 2012-03-31 09:52 ZhangEF 阅读(199) | 评论 (0)编辑 收藏

Ubuntu 手动安装jdk 配置jdk路径

     摘要: Ubuntu 手动安装jdk 配置jdk路径  阅读全文

posted @ 2012-03-31 09:22 ZhangEF 阅读(399) | 评论 (0)编辑 收藏

给 ubuntu添加新硬盘 格式化和挂载

     摘要: ubuntu添加新硬盘 格式化和挂载  阅读全文

posted @ 2012-03-31 00:12 ZhangEF 阅读(5725) | 评论 (0)编辑 收藏