自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 合法ip算法实现——输入字符串,输出所有合法的ip

输入为一串0~9之间的数字字符,不改变字符串中字符的前后顺序,输出所有合法的ip地址。IPV4下用一个32位无符号整数来表示一个ip地址,一般用点分方式来显示,点将ip地址分成4个部分,如“10.137.17.1”。所以要输出所有合法ip,1、将输入的字符串截断成4部分;2、每部分字符串个数大于0小于4;3、每部分字符串的“值”不能大于255。考虑到这三个方面,代码如下。#include <stdio.h>#include <iostream>#include <st

2020-07-31 20:24:27 2322

原创 基于librtmp的AAC audio发送

上一篇文章写过“解决基于librtmp库的rtmp直播服务第一帧图出现比较慢的问题”,针对这个问题,我在上一篇文章中分析过主要是因为播放器调用了ffmpeg中的接口avformat_find_stream_info()。如何加速avformat_find_stream_info()接口函数的返回,可以采用如下方法:1、减少该接口函数的探测时间,不过这样做可能会牺牲探测的准确率;2、如果音视频来源比较单一,可以事先指定某些参数,比如视频编码格式等加速该接口的返回。今天我讲讲我采用的第三种方法:人为增加音频数据

2020-07-19 21:16:30 629 1

原创 rtp协议丢包以及包重复判断

从事流媒体开发的朋友经常会用到rtp协议,今天我就udp荷载rtp包编码过程中经常遇到的重复包以及丢包如何判断说一下自己的经验。总体思路如下:1、基于udp协议的rtp包接受包处理;2、把收到的rtp包放入map容器中;map容器设置如下:std::map<int, RtpData> RtpDataMap;其中int值为rtp包的序列号,RtpData为自定义的结构体,用来存储每个rtp包内容(rtp包序列号、时间戳、marker值、rtp包数据有效长度以及rtp包数据等);3、通过r

2020-05-17 12:18:32 3887 1

原创 解决基于librtmp库的rtmp直播服务第一帧图出现比较慢的问题

开发了基于librtmp的视频直播服务,但是发现利用ffplay播放器播放rtmp视频时,第一帧图象大约6s左右才能出现,客户等待时间过长。分析ffmpeg解码源码(ffmpeg解码参考https://blog.csdn.net/leixiaohua1020/article/details/44220151),进行如下优化。 ffm...

2019-10-21 09:29:04 1430 3

原创 Linux复杂动态库的生成

Linux下动态库文件名形如libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件。在链接动态库生成可执行文件时,并不会把动态库的代码复制到可执行文件中,而是在执行文件中记录对动态库的引用。程序执行时,再去加载动态库。如果动态库已经加载,则不必重复加载,从而能节省内存空间。Linux下生成动态库的步骤如下:1、编写源文件;2、将一个或几个源文件以及其...

2019-10-14 19:50:48 213

原创 C++实现基于jwt的token验证

最近做项目遇到一个问题,需要用jwt实现token的验证。首先到jwt的官网https://jwt.io/#libraries查看jwt支持哪些开源库。由于我用的是C++开发的项目,通过比较各个C++开源库,所以最终采用https://github.com/Thalhammer/jwt-cpp这个开源库实现基于jwt的token验证。采用该开源库主要是因为:1、该开源库支持所有的加密算法,可以参考...

2019-05-19 18:37:07 10265 9

原创 C++之string类字符串连接

概括:对于string类变量,我们可以直接用“+”或者“+=”进行字符串的连接。用“+”进行字符串连接时,操作符左右两边既可以都是string类变量,也可以是一个string类变量和一个C风格的字符串,还可以是一个string字符串和一个char型字符。而用“+=”进行字符串连接时,操作符右边既可以是一个string字符串,也可以是一个C风格字符串或一个char型字符。上述两种方法:左边必须是st...

2019-05-19 00:01:54 6766

转载 Linux守护进程之Shell脚本

服务端程序一般需要长期稳定的在后台运行,除了保证程序本身的健壮性外,还需要用到一些守护程序。现分享一个简单的Shell脚本守护进程。#! /bin/sh#进程名字PRO_NAME=railsCMD="nohup bundle exec rails server webrick -p3000 -b 0.0.0.0 -e production >/dev/null 2>&a...

2019-05-04 18:59:10 1328

转载 Shell中` `与$()的区别

今天有人提问:echo `echo \\\\\\\w`echo $(echo \\\\\\\w)为什么输出的不一样?这就引申出了另一个问题:反引号(`)与$()有没有区别?这是一个非常有意思的问题,但要解释这个问题确比较困难,我来换一个简单一点的例子,通俗的解释一下。比如我们有一个shell脚本名为test.sh有以下两行echo`echo\$HOSTNAME`...

2019-05-04 17:25:44 3839

原创 mysqldump -u 用户名 -p 数据库名——实现数据库迁移

mysqldump -u 用户名 -p 数据库名——实现数据库迁移作为一名优秀的后台开发者不可避免的要涉及到数据库的迁移。数据库的迁移有多种方法,今天给大家介绍一种非常实用并且简便的数据库迁移方法。PS:Linux下的Mysql数据库。1、导出数据和表结构:mysqldump -u用户名 -p 数据库名 &gt; 数据库名.sql#/usr/local/mysql/ mysqldump...

2018-12-22 11:15:55 4313 2

原创 DataGrip实现数据库中views和routines的迁移

DataGrip实现数据库中views和routines的迁移 不同服务器之间数据库的迁移经常会发生,下面我就不同服务器之间数据库中的views和routines迁移介绍一种简便而又可行的办法,供大家参看。 首先两个不同的数据库已经添加至DataGrip中,如下图所示:如上所示,为两个不同的数据库。把上面数据库中的某一个views导入到下一个数据库中 。第二部选中你想导出的某一个vie...

2018-12-08 18:50:43 2194

原创 利用css样式表,动态生成箭头样式

强大的css 最近公司新上一个项目,Vue架构。碰到一个小问题,虽然小,但是最后的解决方法却很妙。如图所示:图中阶段为后台动态获得,获取每一个阶段后,需要添加箭头,由于阶段框为动态获取,所以箭头需要动态添加。此时采用css样式表单完成上述动态添加箭头的功能,即相当于在每一个框的后面添加箭头。ul li:after { content: ''; width: 20px; hei...

2018-11-16 00:10:45 1338

原创 off()函数清除click事件中的累积效果

off()函数清除click事件中的累积效果话不多说,如上图所示。table表格中,点击最后一列的编辑框,弹出动态增加和删除table行操作。在删除过程中,第一次点击编辑、删除按钮以后,删除一行;第二次点击编辑、删除按钮之后,删除两行……原因何在???click操作中的累积效果当你第一次点击编辑、删除按钮之后,删除一行;第二次点击编辑、删除按钮之后,删除两行……第二次click事件发生后删...

2018-11-03 16:23:03 1779

audio.aac文件格式adts,7bytes头部。

该资源为aac编码,文件格式为adts,7 bytes头部的白噪声。主要作用是针对我的博客https://blog.csdn.net/y3350020752/article/details/107447438,提供的音频白噪声数据。

2020-07-19

空空如也

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

TA关注的人

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