自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 linux命令批量修改文件名称

批量修改文件名称,剔除部分相同的内容。for name in `ls *.a`;do mv $name ${name%-x86_64-unknown-linux-gnu*}.a;done解释说明:‘ls *.a’是改目录下所有的.a文件,mv 源文件名 替换文件名,${name%-x86_64-unknown-linux-gnu*}:去掉文件名‘-x86_64-unknown-linux-gnu’右边的字符串,留下左边的。参考:https://www.cnblogs.com/xiaom..

2020-12-16 10:26:58 485

翻译 HTML5 从画布、视频、音频等媒体标签捕获媒体流

参考:https://developers.google.com/web/updates/2016/10/capture-streamcaptureStream()函数可以从<canvas>、<audio>或者<video>标签获取MediaStream。这使得来自这些元素中任何一个的视频或音频流都可以被录制,通过WebRTC实时流式传输,或在<canvas>与其他MediaStream组合在一起。换句话说,captureStream()使MediaS

2020-08-13 09:18:41 3254 2

转载 HTML5 Video/Audio播放本地文件

为什么通过设置src属性,不能播放本地的媒体文件?例如video.src=”D:\test.mp4”。在浏览器中的JavaScript未经用户的允许,不能直接直接访问本地资源,例如文件系统,摄像头,麦克风等。防止本地信息被恶意的JavaScript程序上传到了远方的服务器上。在得到用户允许后,还是可以播放本地文件的,下面介绍一种方法。在页面中插入一个input节点并指定type为file,如果需要播放多个文件,可以添加属性multiple。注册文件节点被更新时的回调函数,在回调函数中调用URL.

2020-08-12 15:40:37 5158

转载 Adobe官方公布的RTMP协议规范

译序:本文是为Adobe官方公布的RTMP协议规范。本文包含 RTMP 规范的全部内容。是第一个比较全面的 RTMP 规范的中译本。rtmp_specification_1.0.pdf 官方下载地址https://wwwimages2.adobe.com/content/dam/acom/en/devnet/rtmp/pdf/rtmp_specification_1.0.pdf。请随时关注官方文档更新:http://www.adobe.com/cn/devnet/rtmp.html。以下内容来自 rtmp_

2020-07-31 14:53:53 738

转载 Linux线程属性

线程属性标识符:pthread_attr_t 包含在 pthread.h 头文件中。//线程属性结构如下:typedef struct{ int etachstate; //线程的分离状态 int schedpolicy; //线程调度策略 structsched_param schedparam; //线程的调度参数 int ...

2020-06-16 09:35:18 124

转载 WebRTC SDP 的协议解释

全局描述o=- 4611731400430051336 2 IN IP4 127.0.0.1第一个数字4611731400430051336是会话唯一标志 第二个数字2是会话的版本,当会话有新的协商或者应答时,例如(例如保持,编解码器更改,添加删除媒体轨道)的时候 IN IP4 127.0.0.1这段描述的是创建SDP的网络IP和类型,与协商无关s=-这个是文本会话的名称,不常用t=0 0开始和结束时间。 都设置成0,这意味着会话不受限于特定的时间...

2020-05-30 17:26:47 320

转载 WebRTC信令交互流程

WebRTC信令交互流程:WebRTC信令交互流程上述序列中,WebRTC并不提供Stun服务器和Signal服务器,服务器端需要自己实现。Stun服务器可以用google提供的实现stun协议的测试服务器(stun:stun.l.google.com:19302),Signal服务器则完全需要自己实现了,它需要在ClientA和ClientB之间传送彼此的SDP信息和candidate信息,ClientA和ClientB通过这些信息建立P2P连接来传送音视频数据。由于网络环境的复杂性,并.

2020-05-30 17:24:32 1107

转载 centos中文字体安装

centos是基于linux内核的系统,默认是不带中文字体的,如果需要使用中文字体,就需要自行安装。中文字体安装过程:安装思路:将windows中的字体拷贝到centos中,然后执行几个命令即可。windows xp字体文件位于C:/WINDOWS/Fonts目录中,每中字体一个文件,比如simsun.ttccentos字体文件位于/usr/share/fonts/,每种字体一个目录,比如wqy-zenhei安装过程:首先在centos的/usr/share/fonts/目录下新建simsu

2020-05-29 09:58:05 552

原创 centos安装中文支持

1.查看当前系统语言 # echo $LANG2.查看当前系统语言配置 # echo $LANG3.查看安装的语言包,查看是否有中文语言包 # locale -a4.如果没有中文语言,网上下载安装中文语言包 # yum groupinstall chinese-support5.如何修改系统语言为中文,临时更换语言 ...

2020-05-29 09:36:32 346

转载 VLC 视频转成rtsp流

通过vlc播放器,将一个视频转成rtsp流,搭建一个rtsp服务器。rtsp客户端可访问这个视频的rtsp流。1. 打开vlc播放器,使用的版本如下2. 菜单:媒体 ---> 流3.添加视频文件,点击添加一个mp4 文件4.选择串流,然后 点击 “下一个”5. 选择新目标:RTSP,然后 点击“添加”6. 端口默认,路...

2020-05-08 15:40:49 7913 7

原创 linux shell传递带空格参数的解决方法

linux shell 传递带空格的参数,怎么做到的?折腾了一番,终于找到真正解决办法。>>> 主脚本 test.shparam1=helloparam2="hello world"param3="ok fine"./hello.sh $param1 "$param2" "$param3">>> 辅脚本 hello.shparam1=...

2020-04-02 13:33:41 3544

原创 CentOS 关闭 IPv6

修改配置文件/etc/sysctl.confvim /etc/sysctl.conf文件最后添加net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.default.disable_ipv6 = 1执行生效sysctl -p用于兼容性测试,模拟无IPv6环境。...

2019-12-06 10:39:25 313

转载 c++ 优先级顺序

c++ 优先级顺序优先级 操作符 描述 例子 结合性 1 () [] -> . :: ++ -- 调节优先级的括号操作符 数组下标访问操作符 通过指向对象的指针访问成员的操作符 通过对象本身访问成员的操作符 作用域操作符 后置自增操作符 后置自减操作符 (a + b...

2019-11-19 15:37:44 870

原创 笔记-TCP/IP IPv6遇到的问题

笔记-TCP/IP IPv6遇到的问题linux平台问题:IPv6地址可ping通,但connect不上问题:IPv6 Scope:Link连接问题linux平台问题:IPv6地址可ping通,但connect不上原因:linux防火墙,开放端口,不仅有iptables(IPv4),还有ip6tables(IPv6)问题:IPv6 Scope:Link连接问题Linux中设置的IPv6地...

2019-10-16 11:34:16 1236

原创 笔记-TCP/IP socket编程

笔记-TCP/IP socket编程TCP 编程涉及函数程序流图UDP 编程涉及函数程序流图编程实例TCP 服务端TCP 客户端UDP 服务端UDP 客户端参考TCP 编程涉及函数函数定义在 sys/socket.h,相关数据类型定义在 sys/types.h。客户端 服务端socket socket bind li...

2019-09-25 10:35:50 151

转载 笔记-TCP/IP IPv4/IPv6地址比较

笔记-TCP/IP IPv4/IPv6地址比较IP地址转换函数转换实例IP地址比较原理比较大小IP地址转换函数在比较IP地址之前需要将其转换为网络字节序的二进制整数,常用的IP地址转换函数是 inet_pton(),其支持IPv4和IPv6.windows下:#include <WS2tcpip.h>linux下:#include <arpa/inet.h>...

2019-09-17 10:55:19 988

原创 笔记-TCP/IP IP地址字符串表示最大长度

笔记-TCP/IP IP地址字符串表示最大长度IPv4IPv6IPv4定义在 <netinet/in.h> 中:#define INET_ADDRSTRLEN 16IPv4地址字符串表示: 192.168.100.10032位(bits)IPv4地址,使用10进制+句点表示时,所占用的char数组的长度为16,其中包括最后一个NULL结束符。IPv6定义在 <n...

2019-09-17 09:25:42 3668

原创 笔记-TCP/IP 网络套接字地址结构

笔记-TCP/IP 网络套接字地址结构IPv4 套接字地址结构IPv6 套接字地址结构通用套接字1地址结构通用套接字2地址结构套接字地址结构比较IPv4/IPv6混合编程示例大多数套接字函数都需要一个指向套接字地址结构指针作为参数。每一个协议簇都定义专属的套接字地址结构,以sockaddr_为前缀。IPv4 套接字地址结构IPv4 套接字地址结构通常也称为 “网际套接字地址结构”,以 soc...

2019-09-16 11:10:33 623

转载 笔记-TCP/IP IPv6地址表示方法与分类

笔记-TCP/IP IPv6地址表示方法与分类IPv6地址表示方法化简原则IPv6地址类型特殊地址说明学习于对于IPv4地址,分为A类、B类、C类、组播地址和留用地址等几大类。其中,ABC类地址中还有不同功能的类型,如广播地址、私有地址等。那么IPv6地址是如何表示,怎么分类的?IPv6地址表示方法IPv6地址共有128位,为了便于人工阅读和输入,和IPv4地址一样,可以用一串字符表示。IP...

2019-09-15 21:47:08 1272

原创 msys2在windows10下编译安装ffmpeg+x265

本文编译于2019-07-31,下载当下最新版本的安装包。一、下载1.1msys2下载下载地址:http://www.msys2.org/安装包:msys2-x86_64-20190524.exe(当前最新的)1.2x265下载下载地址:http://ftp.videolan.org/pub/videolan/x265/安装包:x265_3.1.1.tar.gz(当...

2019-07-31 17:11:04 5789

原创 fastdfs特点

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、...

2019-02-21 18:23:38 4252

原创 fastdfs之sync源码分析

1. sync流程简介sync行为是由storage向tracker report的时候,响应信息触发为组内每一个storage服务器创建一个同步线程(仅仅一个,单线程同步),并且响应信息还更新线程中storage的状态。同步线程根据storage状态判断工作状态,根据binlog改变实现文件同步。sync被触发的流程如下,从下而上。2. storage sync相关源码解析 ...

2019-01-23 10:13:03 648

原创 fastdfs之report源码分析

1. report流程简介report行为是storage向tracker注册storage,上报storage信息的行为。还需注意的是:它根据返回结果触发同步sync。其storage端的流程大概如下:在main[storage/fdfs_storaged.c]函数中,初始化:tracker_report_init[storage/tracker_client_thread.c]。其...

2019-01-21 18:13:34 759 1

原创 fastdfs之upload源码解析

1. upload简介fastdfs集群上传文件,由client发起。client先连接tracker,获取目标storage和存储相关信息;连接目标storage,上传文件。2. client upload源代码解析2.1 upload_file函数根据client upload流程提炼出的代码为:int upload_file(const char* local_filename){ int ...

2018-07-15 23:08:18 1196

原创 java 条件编译(Conditional Compilation)

条件编译是代码编译一大神器。在C/C++编译中可有#ifdef...#endif这样的预编译宏。那么在java编译中,有什么呢?Java编译器优化机制中有这么一条:对于条件表达式中永远为false的语句,编译器将不对条件覆盖的代码段生成字节码。例如:final boolean isDebug = false;  if(isDebug){      printf("I'm in debu...

2017-04-26 13:55:34 564

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除