- 博客(103)
- 资源 (1)
- 收藏
- 关注
原创 Ffmpeg拷贝编码信息
需求转封装时需要将编码信息从输入AVCodecContext拷贝到输出AVCodecContext自定义编码格式,需要将AVCodecContext中的数据拷贝到AVFormatContext中需要获取输入的AVCodecContext的编码信息解决方案旧版本的ffmpeg提供avcodec_copy_context(),用于拷贝codec信息,但是该方式已经被遗弃。旧版本的AVFormatContext中包含AVCodecContext *codec,该codec存储了编码的信息新版本
2021-04-30 17:14:29 1249
原创 linux设置socket禁止IP包分片
背景UDP包在传输过程中,如果对端机器的MTU小于1500,结果你发出去的包其实加上乱七八糟的头,刚好1500,本来是能被对端机器收到的,结果好巧不巧,刚好这个机器发出去的包,默认不允许分包,结果包发出去全部被丢掉了。。。。。分包的标志位位于IP报头,有一个DF(Don’t Fragment)标志位,如果该标志为1,则禁止分包,就会导致MTU不是1500的机器,丢弃掉一些UDP包。如何设置允许分包直接设置IP_DONTFRAG可以实现int val = 0;setsockopt(sd, IPPR
2020-07-19 17:41:41 7448 3
原创 BRPC日志
BRPC关于日志的描述比较模糊,因此记录下BRPC中日志的使用,内容包括BRPC日志重定向,BRPC日志自定义日志格式,BRPC日志实现不同级别打印到不同的文件去
2020-07-17 15:01:09 5300 4
原创 MPEG-2 TS相关名词解释
名词解释MPEG2-TSMPEG2-TS 传输流(MPEG-2 Transport Stream,又称MPEG-TS、MTS、TS)是一种传输和存储包含视频、音频与通信协议各种数据的标准格式,用于数字电视广播系统,所以里面存在一些内容在处理的时候可以忽略,因为我们在SRT使用的时候网络传输并用不到,但是用在数字电视传输的话就需要去处理。TS分成三层:TS层:包括TS头、适配域、有效负载,其中有效负载大部分是PES数据,有的TS包有效负载会是PAT表PMT表等信息,用于映射PES数据关系。PES层
2020-07-15 12:50:43 1210
原创 SRT报文长度问题
SRT报头SRT报头包含UDT报头,且可以是UDT 4和UDT 5,长度为16字节。以数据包为例:报文长度问题报文长度的建议SRT被设计传输TS流,而TS流一个包长度为188,1316刚好为7个包,加上SRT报文头16个字节,所以传输时UDP负载一般为1332字节。如果仅作为传输协议,那么SRT最大可以设置到1456,以提升传输效率,目前机器的MTU一般为1500,去掉其余报文长度,刚好为1472,SRT头(16) + 数据(1456) = 1472。如果作为原生协议推TS流,那么最佳应该
2020-05-29 13:23:33 978
原创 getsockname和getpeername第一次调用结果错误
使用场景在连接建立之后通过getsockname和getpeername进行获取地址和端口,发现出现无法获取正确结果,但在第一次调用的基础上,进行第二次调用,结果正确。解决方案要对getsockename和getpeername使用到的参数进行初始化,如下:struct sockaddr_in addr;socklen_t addrlen = sizeof(addr);getsockn...
2020-05-08 14:52:01 1187
原创 SRT和TCP read和write返回值记录
简单写了个连接测试,查看下SRT的返回值同TCP有何区别SRT只发不收srt_send返回值-1,链接不断开srt_getlasterrno返回值为6001(SRT_EASYNCSND)接收方报错:No room to store incoming packet发送长度填0srt_send返回值0,链接不断开发送方报错:INVALID: Data size for sending...
2020-04-12 23:09:07 851
原创 ffmpeg简单命令练习
ffmpeg简单命令练习1. MKV文件,起始时间为第10s, 持续时间为10s./ffpmeg -i test.mp4 -ss 10 -t 10 output.mkv2. MP4文件,视频编码器为libx264,音频编码器为libmp3lame./ffmpeg -i test.mp4 -c:v libx264 -c:a libmp3lame output.mp43. AVI文件,分...
2020-03-26 22:56:50 442 1
原创 Markdown图片居中、文字居中
默认图片markdown默认的图片位置是靠左,先上一张图片,这个大家都会![description](https://xxxxx)来张卡妹的图~Typora个人非常喜欢typora,平时写markdown也是在typora写好再弄到csdn发表的,这次图片居中搞得我有点烦,后来经过验证,以下方法可以在typora使用使用HTML标签进行居中center可以用于图片,也可以用于...
2020-02-12 22:01:42 5081 5
原创 Github出现Permission denied (publickey).
git@github.com: Permission denied (publickey).
2020-02-12 19:49:20 881
原创 SRT协议控制包处理源码解读
SRT协议控制包处理源码解读SRT协议控制包处理源码解读ACK包1. 如果ACK包长度为SEND_LITE_ACK(4)2. 普通ACK包ACKACK包LOSSREPORT包CGWARNING包KEEPALIVE包HANDSHAKESHUTDOWNDROPREQPEERERROREXT源码SRT协议控制包处理源码解读ACK包1. 如果ACK包长度为SEND_LITE_ACK(4)该包在sr...
2019-10-12 17:44:54 4940 1
原创 mac下的Nginx编译踩坑
背景今天用mac编译nginx源码,因为需要编译nginx-rtmp-module,所以按照官网给的方式去编译,结果中途碰到点困难nginx编译执行命令如下./configure --add-module=/Users/kyolong/Desktop/workspace/nginx/nginx-rtmp-module --with-openssl=../openssl-1.0.2sld:...
2019-09-16 21:04:01 1706
原创 SRT协议的Wireshark解析器编写(Lua)
WireSharks插件编写(lua)前言APIProtoProtoField满足按位显示的例子(同时满足字符串查找)TvbTvbRangePinfoTreeItem实现协议里面添加子树例子DissectorTable代码部分大致框架完善完善字段完善解析函数关于标志位的操作,lua中怎么做关于lua中的for循环关于lua中的switch-case语句装载插件插件抓包效果图关于Post-disse...
2019-08-17 17:19:44 5473
原创 mac上NDK20编译ffmpeg
从某个博客上看到了NDK20编通了ffmpeg-4.2,然后发现编不通faac和libx264,坑啊,先记录下来这个脚本吧。。。坑,后面研究出来了补上#!/bin/bashcd ffmpeg-4.2NDK=/Users/kyolong/Desktop/android/android-ndk-r20 # NDK目录,自行修改API=27# arm aarch64 i686 x86_64 ...
2019-08-09 17:02:32 1193
原创 vs2017手动安装插件
由于今天需要打包文件,因此需要安装Microsoft Visual Studio Installer Projects这个插件,然鹅事情并没有那么简单,在vs2017中打开工具->扩展和更新->联机,搜到插件后下载,结果。。。卡的一笔然后在官网下载了个安装包,怎么是个这样的玩意所以怎么安装,看了一堆官方写的关于啥vspackge的东西,还是不行,然后回到vs扩展和更新里面在线下...
2019-08-06 14:52:12 6883 7
原创 OBS编译(Windows)
OBS编译https://blog.csdn.net/balijinyi/article/details/78364400https://github.com/obsproject/obs-studio/wiki/Install-Instructions#windows-install-directions下载源码https://cdn-fastly.obsproject.com/down...
2019-07-18 16:55:29 520 3
原创 SRT流媒体传输协议小结
srt协议连接过程握手模式callerListenerRendezvous参数参数设置摘抄自Cogent的微信公众号https://mp.weixin.qq.com/s/3kyRZiqpfQ_CihMAAU7UmA连接过程握手模式caller作为连接的发起者,知道对应设置Listener模式设备的公网IP地址及其监听的UDP端口。让一台设备发起建立一个点对点传输的SRT连接;设备...
2019-04-11 14:23:28 10582 1
原创 MinGW32编译ffmpeg+libsrt
MinGW编译带srt库的ffmpeg前言MinGW安装CMAKE安装Visual Studio 2017安装支持windows的线程库SRT库的编译openssl的安装SRT编译MinGW下的SDL和opensslopenssl前言国内关于SRT协议的资料,几乎为0,没什么人用srt协议去编译过ffmpeg,而且这东西在Windows下面编各种坑,整整搞了我十几天,网上资料几乎都是英文的,有...
2019-04-11 11:14:45 3703 3
原创 迷宫问题——BFS(广度优先搜索)
BFS——广度优先搜索之前写迷宫问题用的都是递归求解,采用的是DFS深度优先搜索,从来没有想到过用广度优先搜索,这次碰到了这个题:假设一个探险家被困在了地底的迷宫之中,要从当前位置开始找到一条通往迷宫出口的路径。迷宫可以用一个二维矩阵组成,有的部分是墙,有的部分是路。迷宫之中有的路上还有门,每扇门都在迷宫的某个地方有与之匹配的钥匙,只有先拿到钥匙才能打开门。请设计一个算法,帮助探险家找到脱困的...
2019-01-28 21:33:14 2172
原创 C++的Json库的简单实现
我的Json库实现Json实现Json[我的源码(点这里)](https://github.com/jo-qzy/MyJson/)和效果图Json库中的类实现JSON::Value类JSON::ReaderJSON::WriterFastWriterStyleWriter序列化部分(Reader)空值、布尔值number字符串转义字符UTF-8转换arrayobject反序列化输出(Writer部...
2019-01-23 18:27:00 9523
原创 Linux下的信号
信号的处理信号用户态和内核态信号是如何被处理的信号处理signal函数sigaction函数代码实现信号用户态和内核态在代码执行过程中经常会出现用户态和内核态之间的切换,我对用户态的理解就是我们平时写的代码大多都在用户态,比如for循环、创建变量等这些都是用户态下的。当我们调用read、write、alarm、fork等系统调用函数(read、write涉及到缓冲区的读写,fork则需要内...
2018-11-16 00:01:52 471 1
原创 线程学习(四):线程的同步
线程同步线程的同步条件变量条件变量配合互斥锁条件变量接口卖鸡腿代码线程的同步在线程中如果有一个资源他是有限的,比如超市里的鸡腿,卖光了就没了,必须要进货才能买,但是进货的途中你不能拿,中途拿了那不叫买,叫抢劫。所以在进货途中需要有人保护啊,这个时候互斥锁又来当保镖了,我进货的时候都老实点,全都不许动,要买等着,等我进了货你们再买,没了就等下一批鸡腿。上面那个例子就是线程同步,消费者只能等生...
2018-10-31 22:41:38 416
原创 智能指针
智能指针简单来说智能指针就是一个类似于指针的玩意,帮我们管理一个对象,不需要我们去手动释放指针所指对象。智能指针(英语:Smart pointer)是一种抽象的数据类型。在程序设计中,它通常是经由类模板来实现,借由模板来达成泛型,借由类别的析构函数来达成自动释放指针所指向的存储器或对象。智能指针一般会遵循以下两点:遵循RAII思想——资源分配即初始化重载*、->运算符,有些...
2018-10-25 18:24:43 262
原创 为什么TCP握手是三次挥手是四次?
为什么TCP连接是三次握手而不是两次或者四次???为什么断开连接是四次挥手而不是三次或者五次????这篇文章给你答案
2018-10-20 00:45:20 3464
原创 C++类型萃取
类型萃取类型萃取指的是当泛型编程时,根据一个模板类(我这里就用类来说了,当然模板函数也可以)的模板类型,使用一个traits来获取其类型,针对其类型调用不同的函数,比如拷贝函数 ,如果普通类型int、double之类的则调用较快的内存拷贝(memcpy),而需要申请空间的如string、vector等,则使用for循环赋值拷贝。
2018-10-19 00:05:10 2090
原创 LeetCode:17.电话号码的字母组合
题目LeetCode:Letter Combinations of a Phone Number给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入: "23"输出: ["ad", "ae", "af", "bd", "be", "bf", "cd&quo
2018-10-12 22:19:15 515
原创 网易笔试题——优雅的点
题目小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。例如:半径的平方如果为25优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。输入输出样例输入输入为一个整数,即为圆半径的平方,范围在32位int范...
2018-10-11 11:49:17 302
原创 网易面试题——小易喜欢的单词
小易最喜欢的单词小易喜欢的单词具有以下特性:1.单词每个字母都是大写字母2.单词没有连续相等的字母3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。例如:小易不喜欢"ABBA",因为这里有两个连续的’B’小易不喜欢"THETXH",因为这里包含子序列"THTH"小易不喜欢"ABACADA",因为这里
2018-10-09 23:40:15 956
原创 网络编程知识点
网络编程套接字什么是socket什么是socket网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
2018-10-08 22:05:31 578
windows下的SRT流媒体传输协议库——dll、exe、lib
2019-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人