ffmepg 音频重采样 因为业务需要,直播推流过程中,pcm的音频需要从48k采样率,重采样到44.1k,然后再编码程aac,封装成rtmp推送出去。这里只描述如何做pcm数据的重采样。 整个过程中,音频输入:PCM/S16/48000/2 重采样输出: PCM/S16/441000/2,每一帧输入是10ms的samples。 具体处理函数如下:步骤1:定义基本的处理函数和相关结构体 #include <libswresample/swresample....
流媒体服务器原理和架构解析 原文: https://blog.csdn.net/xuheazx/article/details/52020933多媒体数据文件一个完整的多媒体文件是由音频和视频两部分组成的,H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式,字幕文件只是附加文件。目前大部分的播放器产品对于H.264 + AAC的MP4编码格式支持最好,但是MP4也有很多的缺点,比如视频header很大,影...
windows下使用camera (ffmpeg dshow方式) 方法概要:先读取camera支持的mode,然后用ffmpeg dshow打开camera并解码压缩流一. 用相关代码读取本地camera当前支持的输出mode,方便后续选择mode来打开camera:bool EnumerateCameras(vector<int>& camIdx){ camIdx.clear(); struct CapDriver { int enumValue; string enumName; string comme...
windows下使用camera(opencv方式) 一. opencv支持读取摄像头,支持视频录制或显示, 具体代码 //1. 初始化视频录制文件 String recFileName = std::to_string(count) + "_rec.avi"; int wfourcc = VideoWriter::fourcc('M', 'J', 'P', 'G'); writer = VideoWriter(recFileName, wfourcc, CAP_FPS, Size(CAP_WIDTH, CAP_HEIG...
ffmpeg监听和接收rtp音视频流 在网上找了一圈关于ffmpeg如何接收rtp流的Example,都是使用ffmpeg 命令行来实现的,还没看到用相关ffmpeg库和API来实现的,于是自己写了个小程序,来验证ffmpeg在本地监听rtp流,代码在ffmpeg4.1+win10环境下测试可行: 有几个关键点: 1)需要提供video/audio sdp信息,用于描述基本媒体信息 ...
H264 Annex B 与 AVCC的区别 本文链接:https://blog.csdn.net/Romantic_Energy/article/details/50508332 首先要理解的是没有标准的H.264基本流格式。文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式。标准文档中指定了视频怎样编码成独立的包,但是这些包是怎样存储和传输的却是开放的。一. ...
KCP传输原理 来自:https://wetest.qq.com/lab/view/391.html?from=coop_gad1 简介KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。...
WebRTC56版本SDP详细解析 http://blog.csdn.net/onlycoder_net/article/details/76702432v=0//sdp版本号,一直为0,rfc4566规定o=- 7017624586836067756 2 IN IP4 127.0.0.1// RFC 4566 o=<username> <sess-id> <sess-version> <n...
私钥和证书的创建方法 方法一:(http://blog.csdn.net/fenglibing/article/details/8610280)1、使用OpenSSL生成私钥 常用的生成算法有RSA及DSA,RSA生成的私钥可以用来加密以及签名,而DSA生成的私钥只可以用来签名 1.1)、RSA算法生成key的示例 openssl genrsa -des3 -out privkey.pem 2048 gen...
webrtc 学习要点 总结一下webrtc的关键技术,如果搞懂了以下问题,webrtc应该算基本掌握了1. 通话建立的大概流程。 a)收集建立点对点的 IP candidates (local, srvReflex, relay),用于建立UDP 发送路径 b ) 收集端支持的media info,及相关feature支持特性,构建SDP c ) 通过第三方信令服务器转发SD...
WebRTC视频接收缓冲区基于KalmanFilter的延迟模型 转载: https://www.jianshu.com/p/bb34995c549a在WebRTC的视频处理流水线中,接收端缓冲区JitterBuffer是关键的组成部分:它负责RTP数据包乱序重排和组帧,RTP丢包重传,请求重传关键帧,估算缓冲区延迟等功能。其中缓冲区延迟JitterDelay对视频流的单向延迟有重要影响,很大程度上决定着应用的实时性。本文不打算全面分析接收端缓冲区的实现细节,只...
WebRTC的拥塞控制技术 转载: https://www.jianshu.com/p/9061b6d0a9011. 概述对于共享网络资源的各类应用来说,拥塞控制技术的使用有利于提高带宽利用率,同时也使得终端用户在使用网络时能够获得更好的体验。在协议层面上拥塞控制是TCP的一个总要的组成部分;但是对于非面向链接的传输层协议,如UDP,其在协议层面上并没有对拥塞控制进行强制性的要求,这样做保证了最优的传输性能,且在拥塞控制的设...
ffmpeg常见视频操作 ffmpeg版本号 3.1.2,以下操作都是亲自实践过:1. 推流到rtmp服务器 ffmpeg -re -i BigBuckBunny.mp4 -c copy -f flv rtmp://10.15.40.2/liveshow/test2. 从rtmp服务器dump文件 ffmpeg -i rtmp://10.15.40.5/liveshow/pc_pc_fo...
音频自动增益(AGC) 转自: http://blog.sina.com.cn/s/blog_14b0817cb0102vykw.html当有对语音的响度进行调整的需要时,就要做语音自动增益(AGC)算法处理,当你在跟远方的朋友进行语音交流时,背后都有这个算法在默默的工作,如大名鼎鼎的QQ聊天软件、做语音起家的YY等,语音聊天时都会用到这个算法。最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频...
各种排序算法总结 /* Created by vencent on 2008.8.29 *//* 本文件列出了各种排序方法:1.插入排序1.1 一般插入排序 InsertSort(int* array, int length)1.2 折半插入排序 BinInsertSort(int* array, int length)1.3 希尔排序 ShellSort(int* array,
安装tensorflow1.2 centos7下安装tensorflow1. 安装相关库: yum install -y python python-devel python2-pip pip install wheel pillow 下载安装并安装:bazel-0.5.2-installer-linux-x86_64.sh2. 下载tensorflow代码: git clone https://git...
为啥显示器用RGB而打印机用CMYK 可见光是电磁波的一种,只要是波长在380纳米到740纳米之间(有多种说法,但大致都在这个范围附近)的电磁波就可以被人眼所感受,成为可见光。 人眼里有三种可以产生颜色感觉的神经细胞,分别对于波长在420纳米、534纳米、564纳米这三个值附近的光线最敏感,会让大脑分别产生蓝、绿、红三种颜色感觉。而如果蓝绿两种感受细胞同时受刺激,就产生了青色的感觉;同理,蓝红产生品红色,绿红产生黄色。而如
webrtc 视频通话质量的评价方法 webrtc 视频通话质量的评价方法(待完善)评价内容: 视频通话画面质量基本KPI包括:PSNR,时延,丢帧,抖动等评价方法: step1. 发送端和接收端视频帧信息采集 a. YUV frame dump:webrtc中,encoder之前及decoder之后,有提供专门的callback函数,用来对YUV frame做处理,这里只需将YUV保存到本地文件即可 b. fra...
人工智能学习方法 转自:https://www.zhihu.com/question/49909565李嘉璇《TensorFlow技术解析与实战》作者。深度学习研发298 人赞同了该回答我明白很多入门深度学习者的疑惑。因为当初,我也是关注着这个问题进来的。其实,我在《TensorFlow技术解析与实战》当