流媒体
文章平均质量分 94
john_liqinghan
我的人生需要一步步的积累需要一步步的实现也许前方是泥泞不堪但我也会风雨无阻的前行
展开
-
live555从RTSP服务器读取数据到使用接收到的数据流程分析
本文在linux环境下编译live555工程,并用cgdb调试工具对live555工程中的testProgs目录下的openRTSP的执行过程进行了跟踪分析,直到将从socket端读取视频数据并保存为对应的视频和音频数据为止。进入testProgs目录,执行./openRTSP rtsp://xxxx/test.mp4对于RTSP协议的处理部分,可设置断点在setupStreams转载 2015-04-08 11:13:17 · 1389 阅读 · 0 评论 -
FFmpeg 裁剪——音频解码
只留下某些音频的配置:./configure --enable-shared --disable-yasm --enable-memalign-hack --enable-gpl --enable-cross-compile --prefix=/home/liqinghan/workspace/ffmpeg-3.2.2/_install --arch=arm --target-os=linu...原创 2017-11-13 20:27:25 · 1763 阅读 · 0 评论 -
音频技术1
音频技术1原始的音频要通过网络传输到某个点播放,一般经过采集(声波信号到模拟信号),采样(AD过程)、编码、解码、播放(DA过程)的过程。本文章主要讲述的是讲述整个过程一般的描述,让读者对音频传输的过程有一定的了解。鉴于本人才疏学浅,文中有什么描述不妥当或者有误的地方还请大家指正,谢谢!音频的采集:一般常见的有麦克风、话筒等设备。采集设备一般都是能采集声波信号然后转化成模拟量。原创 2017-06-16 23:06:18 · 397 阅读 · 0 评论 -
大屏拼接处理器
大屏拼接处理器概括 在大屏幕拼接系统中,我们很容易将焦点聚集在拼接单元上,而作为整个系统“神经中枢”的处理器往往被人忽视。对于大屏幕厂商来说,处理器是加强对大屏核心技术把控,打造差异化的关键。大屏处理器的优劣直接决定着整个大屏幕显示系统效果的好坏。那么,大屏处理器是什么?大屏幕处理器主要功能是将一个完整的图像信号划分成N块后分配给N个视频显示单元(如背投单元),完成用原创 2017-05-04 20:56:48 · 3194 阅读 · 1 评论 -
建立live555海思编码推流服务
因项目需要,这一周弄了一下live555。需求:海思编码——>RTSP server,使用VLC可以访问,类似于网络摄像机的需求。看了一下,live555的架构太复杂了,半桶水的C++水平还真的需要花点时间才可以明白。由于live555的例子server使用的是读取文件,打包成RTSP包然后发送。例子运行live555MediaServer,把对应的视频文件发到该服务的目录下面,在VLC使用rtsp原创 2017-01-13 20:56:19 · 12712 阅读 · 7 评论 -
基于live555实时流服务器解析
#define READ_FROM_FILES_SYNCHRONOUSLY 1READ_FROM_FILES_SYNCHRONOUSLY 1void ByteFrameLiveVideoSource:: doGetNextFrame(){ if(fLimitNumBytesToStream && fNumBytesToStream == 0) { handleClo...原创 2017-02-07 21:31:19 · 2984 阅读 · 0 评论 -
setsockopt参数详细说明
setsockopt参数详细说明(转载)int setsockopt( SOCKET s, int level, int optname, const char* optval, int optlen);s(套接字): 指向一个打开的套接口描述字 level:(级别): 指定选项代码的类型。 SOL_SOCKET: 基本套接口 IP转载 2016-04-20 14:04:31 · 1496 阅读 · 1 评论 -
linux 的 socket例子
server端:#include #include #include #include #include #include #include #include #include #include #define MAX_LISTEN_NUM 5#define SEND_BUF_SIZE 100#define RECV_BUF_SIZE 100#define LISTE原创 2016-04-14 21:38:20 · 497 阅读 · 1 评论 -
Linux的SOCKET编程详解
目录(?)[+]Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signa转载 2016-03-30 12:33:02 · 524 阅读 · 0 评论 -
IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
1、htonl ()和ntohl( )u_long PASCAL FAR ntohl (u_long netlong);u_short PASCAL FAR ntohs (u_short netshort);ntohl( )-----网络顺序转换成主机顺序u_long PASCAL FAR htonl (u_long hostlong);u_short PA转载 2016-03-29 21:11:42 · 8933 阅读 · 0 评论 -
海思Hi3536开发——处理器整体架构了解
1、处理器整体风景图 Processor Core z ARM Cortex A17 quad-core@maximum 1.4 GHz − 32 KB L1 I-cache, 32 KB L1 D-cache − 1 MB L2 cache − Main control processor for running peripheral d原创 2015-09-03 17:23:56 · 33748 阅读 · 0 评论 -
gdb调试RTSPClient,分析流程之一
注意如果想让某程序可以被gdb调试,编译的时候就必须加上 gcc 或者g++ -g 命令live555有专门配置为gdb的配置文件!只需配置即可gdb binFile 调试某个可执行文件liqinghan@ubuntu:~/work/live/testProgs$ gdb ./testRTSPClientrun/r argv参数 运行程序(gdb) run rtsp:/原创 2015-04-29 15:29:27 · 1327 阅读 · 0 评论 -
RTSP协议通信流程
原创 2015-04-28 15:55:06 · 1725 阅读 · 0 评论 -
RTSP学习笔记1——testRTSPClient
由main函数开始分析//没有传入任何参数TaskScheduler* scheduler = BasicTaskScheduler::createNew();BasicTaskScheduler* BasicTaskScheduler::createNew(unsigned maxSchedulerGranularity) { return new BasicTaskS原创 2015-04-02 18:43:55 · 3378 阅读 · 0 评论 -
补充Live555推实时流
lvrs.h //接口头文件#ifndef _LVRS_H_#define _LVRS_H_#ifdef __cplusplus#define EXTERN extern "C"#define EXTERN_BEGIN extern "C" {#define EXTERN_END }#else#define EXTERN ...原创 2019-09-18 18:44:31 · 1616 阅读 · 1 评论