自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Debian9环境下ffmpeg4.4静态编译和动态编译(带x264)

参考https://blog.csdn.net/glw0223/article/details/86703206环境静态编译nasm(x264依赖)wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xztar xvf nasm-2.15.05.tar.xzcd nasm-2.15.05./configuremake -j8make installx264wget https://code

2021-10-18 00:09:10 346

原创 WebRTC日志

日志文件主要是在rtc_base/logging.h和rtc_base/logging.cc文件里。webrtc有两种日志格式#define RTC_LOG(sev) RTC_LOG_FILE_LINE(rtc::sev, __FILE__, __LINE__)// The _V version is for when a variable is passed in.#def...

2019-09-04 09:45:48 2346

原创 WebRTC之CreateOffer调用关系

2019-07-25 22:08:47 1149

原创 WebRTC之每创建一个PeerConnection,都会创建两个线程

在RtpTransportControllerSend的构造函数中process_thread_(ProcessThread::Create("SendControllerThread")),在Call的构造函数中,module_process_thread_(ProcessThread::Create("ModuleProcessThread")),...

2019-06-28 10:20:53 1786

原创 WebRTC之PeerConnection的一些状态

class PeerConnectionInterface : public rtc::RefCountInterface { public: // See https://w3c.github.io/webrtc-pc/#dom-rtcsignalingstate enum SignalingState { kStable, kHaveLocalOffer, k...

2019-06-27 21:28:14 2305

原创 WebRTC中SDP的setup:actpass、active、passive

a=setup 主要是表示dtls的协商过程中角色的问题,谁是客户端,谁是服务器a=setup:actpass 既可以是客户端,也可以是服务器a=setup:active 客户端a=setup:passive 服务器由客户端先发起client hello参考地址:https://webrtc.org.cn/sdp-2/其主要内容如下:用一个真实的例子解释为什么这很烦...

2019-06-13 16:22:59 4442 2

原创 WebRTC之DTLS

概述DTLS是Datagram Transport Layer Security的缩写DTLS为UDP协议定制的TLS协议DTLS是用来加密内容的WebRTC使用DTLS来交换SRTP的密钥rfc文档:https://tools.ietf.org/html/rfc4347握手一次完整的握手rfc:https://tools.ietf.org/html/rfc4347#secti...

2019-06-08 23:11:50 3164

原创 Webrtc中ICE之SendStunBindingRequest

void UDPPort::SendStunBindingRequest(const rtc::SocketAddress& stun_addr) { if (stun_addr.IsUnresolvedIP()) { ResolveStunAddress(stun_addr); } else if (socket_->GetState() == rtc::Asyn...

2019-06-08 02:03:23 1620

原创 ICE之STUN协议---Binding

这是一个Chrome浏览器和licode的实时通信的抓包。过滤stun协议如下:分析几个问题:chrome一直在发Binding Request包,而且licode也会回复Binding Success ResponseChrome的username是QyXk:c908,而licode的username是c908:QyXklicode发了两次Binding Indication地址映...

2019-06-01 22:59:07 1550

原创 ICE之STUN协议---Binding Success Response

文档目录ICE之STUN协议—Binding RequestICE之STUN协议—Binding Success Response

2019-06-01 16:45:10 1282

原创 ICE之STUN协议---Binding Request

参考文档ice : https://tools.ietf.org/html/rfc5245stun3489 : https://tools.ietf.org/html/rfc3489stun5389(从3489演变来的) : https://tools.ietf.org/html/rfc5389stun协议使用https://tools.ietf.org/html/rfc5389#...

2019-06-01 13:28:49 4845

原创 macOS下webrtc 编译错误:accept the license agreement, and run `sudo xcode-select -s /path/to/Xcode

在macos上编译webrtc遇到的问题ERROR at //build/config/mac/mac_sdk.gni:68:5: Script returned non-zero exit code. exec_script("//build/mac/find_sdk.py", find_sdk_args, "list lines") ^----------Current d...

2019-05-31 15:21:37 1782

原创 ffmpeg是怎么处理rtp时间戳(pts)

在文件rtpdec.c里分两种情况:1、有ntp时间(就是有sr包);2、没有ntp时间/** * This was the second switch in rtp_parse packet. * Normalizes time, if required, sets stream_index, etc. */static void finalize_packet(RTPDemux...

2019-04-24 19:10:06 2119

原创 ffmpeg把yuv数据转换成jpeg图片

在代码里实时把yuv420数据,编码成jpeg图,要写一坨代码;可以先存储yuv420数据,然后用ffmpeg命令转成jpeg图;ffmpeg -y -s 1920x1080 -i source0_759_ms.yuv source0_759_ms.yuv.jpeg...

2019-04-23 17:22:50 9511 4

原创 ffmpeg解码后的AVFrame写yuv文件,及ffplay播放yuv

ffmpeg解码后的AVFrame写yuv数据AVFrame* pFrameYUV;//这里的pFrameYUV是从avcodec_decode_video2解码,并且sws_scale转换后的数据static FILE *fp_yuv = fopen("glw.yuv", "wb");if(fp_yuv){ int y_size=width*height; fwrite...

2019-04-21 20:34:39 1448

原创 ffmpeg h265(flv封装) 转码成 h264 (flv封装)

ffmpeg h265(flv封装) 转码成 h264 (flv封装)ffmpeg -y -vcodec hevc -i glw265.flv -acodec copy -vcodec libx264 glw264.flv

2019-04-19 14:40:11 13250 3

原创 macOS下基于FFMPEG的播放器(一)

macos下基于FFMPEG的播放器1、编译ffmpeg下载ffmpeg,参考FFMEPG 只git clone 最后一次提交编译ffmpeg配置./configure --disable-optimizations --prefix=/Users/gaoliwen/work/ffmpeg_temp --enable-static --disable-shared编译make ...

2019-04-16 10:27:17 848

原创 RTCP协议详解:sr包(非第一个sr包)

rtcp解析:sr包(非第一个sr包)rfc官方文档地址:https://tools.ietf.org/html/rfc3550#section-6.4.1说明:视频(h264)的sr包抓包时长约10秒钟80版本是2没有填充没有report blockc8200 说明是sr包00 06rtcp payload长度 (6+1)*4 = 27字节5a ...

2019-04-15 16:07:25 1509

原创 RTCP协议详解:rr包(非第一个rr包)

rtcp格式解析:rr包(非第一个rr包)rfc 标准文档:https://tools.ietf.org/html/rfc3550#section-6.4.2说明:这是一个线上的抓包视频(h264)的rr包抓包时长大约10秒钟每秒一个rr包(应该是由于每秒收到一个sr包,然后再发送rr包)疑问:last sr 和 delay since last sr timestamp还是...

2019-04-15 15:45:04 1180 1

原创 RTCP协议详解:rr包(第一个rr包)

rtcp格式解析:rr包rfc标准文档:https://tools.ietf.org/html/rfc3550#section-6.4.2这是线上的抓包,和rtcp格式解析:sr包对应的rr包,所以肯定是音频的rr包,这里的音频是aac编码。完整的rr包如下...

2019-04-15 12:01:00 3221

原创 RTCP协议详解:sr包(第一个sr包)

rtcp格式解析:sr包rfc标准文档: 参考 https://tools.ietf.org/html/rfc3550#section-6.4.1这是线上的一个抓包:完整的sr包如下80 c8 00 06 37 51 c9 35 e0 5a be de 4c b8 06 6c00 00 01 20 00 00 00 01 00 00 00 b780 ...

2019-04-15 09:28:34 2605 3

原创 把一条长为1的线段任意分成三段,则这三段能构成三角形的概率为??

把一条长为l的线段任意分成三段,则这三段能构成三角形的概率为(C)。A、12\frac{1}{2}21​B、13\frac{1}{3}31​C、14\frac{1}{4}41​D、16\frac{1}{6}61​

2019-04-01 00:22:28 7407 2

原创 int型的最大值、最小值 c++

int型的最大值、最小值C/C++中int类型是32位的,范围是-2147483648到2147483647 。int max = (1<<31)-1;//这里要加括号,运算符优先级int min = 1<<31;//由于int是32位的int main(int argc, const char * argv[]) { // insert code her...

2019-03-27 09:57:11 45357

原创 linux下查找java进程所在的目录

看看有哪些java进程ps -ef | grep java现在要找这个进程的安装目录进入/proc目录刚才看到要找的进程号是18698。在/proc下会有当前linux机器上所有的进程的一个文件夹。cd /proc/18698查看cwd的软连接ll cwd软连接的地址就是安装路径。...

2019-03-26 16:26:12 5780 1

原创 golang最简单的http client(GET方法),包括json.Unmarshal,fmt格式化输出

工程中用的测试用例代码package mainimport ( "fmt" "io/ioutil" "net/http")func main() { fmt.Println("hello world") client := &http.Client{} url := "http://ip:port/upload/rtp/udp/count" request,...

2019-03-25 15:24:55 6728

原创 map如何判断是否存在某元素(golang、cpp)

golang直接取值。这点golang做的还是比较好的。func main() { fmt.Println("Hello World") myMap:=make(map[int]int, 8) myMap[20]=10 i,ok:=myMap[20] fmt.Println(i,ok) i,ok=myMap[100] fmt.Println(i,ok) if _, ok :=...

2019-03-16 13:24:30 5022 1

原创 RTC(实时通信)的延时

这里要讲的是实时通信技术在直播场景下的应用。那么从主播到用户到底延时是多少,都消耗在哪里了?我们先把它叫做端到端延时。端到端延时端到端延时=上传端内部延时+网络传输延时+播放端内部延时端到端延时=上传端内部延时+网络传输延时+播放端内部延时端到端延时=上传端内部延时+网络传输延时+播放端内部延时我们这里端到端延时,记为T总T_总T总​上传端内部延时,记为T上传T_{上传}T上传​网...

2019-03-15 16:02:58 1766

原创 es(elasticsearch)使用命令行删除数据

这里先记录一次线上的处理过程curl -XDELETE ‘http://localhost:9200/rtp-report-server-*’

2019-03-13 00:28:40 7068

原创 Webrtc AudioProcessing

Webrtc AudioProcessing地址下载地址 https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/当前版本release是0.3.1编译./configuremake --prefix=yourinstallpathmake install会在你的安装目录下,生成include和...

2019-03-12 11:54:18 1946 7

原创 make编译打印详细日志

常用的是make V=1具体如下:命令描述make V=0quiet build (default)make V=1verbose buildmake V=2give reason for rebuild of target举个例子gaoliwendeMacBook-Pro:webrtc-audio-processing-0.3.1 gaoliwe...

2019-03-11 23:09:02 15803

原创 rtp扩展头的使用

rtp确定头(rtp fixed header field)通常情况下是12字节,如下图版本(V):2bits。当前版本是2。填充(P):1bit。一般没有填充,是0。扩展位(X):1bit。如果有扩展,会在rtp头之后,payload之前增加rtp扩展头。CSRC count(CC):4bits。一般为0。所以rtp固定头一般是12字节。上面是1byte标志位(M):1bit。...

2019-03-09 00:02:23 6364

原创 nginx日志 打印 post body

背景当客户端要上传的日志内容比较大时,在url里加参数就会显得比较冗余,这时就需要在body里,通过post的方式上传,如果post的内容是json的话,更容易扩展。记录一个线上使用的nginx.confuser root;worker_processes 1;events { worker_connections 1024;}http { include...

2019-03-08 16:51:19 6062

原创 ts文件解析

ts file informationImportance abbreviation(iso18318-1.pdf page4)Ts packet 1 - patts header 4 bytes0x47 0x40 0x00 0x30:0x47 : sync_byte0x40 &amp; 0x40 : payload_unit_star...

2019-03-08 15:33:50 1209

原创 ffmpeg命令:pcm和wav转换

pcm转换成wav前提是知道pcm的采样率、通道数、数据格式ffmpeg -f 数据格式 -ar 采样率 -ac 通道数 -i input.pcm output.wav比如ffmpeg-f s16le -ar 16000 -ac 1 -i input.pcm output.wavs16le:有符号、整形、小端wav转成pcmffmpeg -i input.wav -f...

2019-03-06 19:32:21 13602

原创 linux下top命令,按照内存、cpu排序

默认top命令是3秒刷新一次,可以加参数改成1秒。即 top -d 1按cpu排序:top命令后,输入大写的P按内存排序:top命令后,输入大写的M

2019-03-06 15:40:15 11665 2

原创 c/c++ long 占多少字节(32位机64位机)

在c/c++中,各个类型占多少位。 char short int long 32位机 1字节 2字节 4字节 4字节 64位机 1字节 2字节 4字节 8字节

2019-03-06 15:15:11 12545

原创 wav文件分析

参考文档:https://blog.csdn.net/glw0223/article/details/88063489分析文件1905_mono_2s.wav,文件下载地址ffprobe分析gaoliwendeMacBook-Pro:testfile gaoliwen$ ffprobe 1905_mono_2s.wavffprobe version 4.1 Copyright (c...

2019-03-03 16:36:53 740

原创 webrtc学习:vad (voice activity detection)

环境我的是master分支git logcommit 9a27c2fc7a2eb068eb06fad2e991039e2fceb960 (HEAD -&gt; master)Author: Artem Titarenko &lt;[email protected]&gt;Date: Thu Jan 31 10:20:00 2019 +0100 Make interna...

2019-02-28 16:13:49 1321

原创 golang最简单的http文件服务

源码package mainimport ( "fmt" "net/http" "os" "os/exec" "path/filepath" "strings")func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true,

2019-02-21 14:51:37 910

原创 macos下使用ffmpeg 录制大码率视频

显示摄像头设备号ffmpeg -list_devices true -f "avfoundation" -i ""x264编码(软编)ffmpeg -f avfoundation -framerate 30 -pix_fmt nv12 -s 1280x720 -i "0" -c:v libx264  -b:v 20000000 -preset ultrafast -tune zer...

2019-02-14 17:10:47 767 1

gaoliwen.aac

https://blog.csdn.net/glw0223/article/details/87193169的音频测试文件

2019-02-13

空空如也

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

TA关注的人

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