流媒体
我是流氓我怕谁啊
未曾清贫难成人
不经打击老天真
自古英雄出炼狱
从来富贵入凡尘!
展开
-
MXF格式文件详解
一、什么是MXF文件?MXF(全称Material Exchange Format)是一种视频/音频容器格式,该格式由SMPTE标准定义,解决了非专业格式出现的问题。目前主要是应用在专业的摄像机中,用来存储视频、音频和其他数据。松下HVX200、佳能XF300 / XF305、索尼XDCAM等许多专业的便携式摄像机都是使用MXF格式。MXF格式与大量的编辑工具(包括Windows Movie Maker/iMovie)、播放器和设备都不兼容。如果您想播放该格式的视频只能转换格式或使用支持该编码格式的播放原创 2020-11-16 15:30:51 · 18370 阅读 · 0 评论 -
FFMPEG NVIDIA硬件加速总结
目录1.NVDIA概述2.FFmpeg集成到GPU3.FFmpeg uses Video Codec SDK4.ffmpeg对NVIDIA GPU的编译步骤4.1configure命令4.2 make4.3 ffmpeg测试4.4 编解码器使用方法4.5 程序开发使用方法5.源码分析5.1 h264部分5.2h265部分1.NVDIA概述FFmpeg可通过Nvidia的GPU进行加速,其中高层接口是通过Video Codec SDK来实现GPU资源的.转载 2020-10-20 16:24:59 · 4503 阅读 · 0 评论 -
HDR到底是什么?
一,定义SDR (Standard Dynamic Range), 标准动态范围HDR (High Dynamic Range), 高动态范围HLG:HLG的全称是Hybrid Log Gamma,它是由英国BBC和日本NHK电视台联合开发的高动态范围HDR的一个标准。HLG不需要元数据,能后向兼容SDR,相比HDR10,它的画面即使在现有的SDR显示设备上,也能呈现得更加艳丽动人。HDR 10:HDR10,2015年8月27日,美国消费电子协会公布的hdr10媒体档案,俗称hdr10,使用建议转载 2020-07-25 18:00:12 · 3114 阅读 · 0 评论 -
WebRTC和传统直播技术的融合
參考文章:https://pingos.io/https://www.livevideostack.cn/原创 2020-07-19 14:08:11 · 465 阅读 · 0 评论 -
如何用FFmpeg读取内存的PS/TS流,并分离出视频和音频
之前做一个项目遇到一个问题:从网络中收到PS/TS流,需要从中分离出视频和音频,但是FFmpeg只支持标准的几种输入流协议(RTP/HTTP/RTSP/MMS),而我们的协议它不支持,所以就不能够用它来直接做接收。那能否由自己来接收数据然后让FFmpeg读取内存中的数据呢?答案当然是可以的,这就需要用到FFmpeg的探测流格式的功能,主要是用到了两个API: avio_alloc_context, av_probe_input_buffer。前者向FFmpeg传递用户自定义的Read,write, Seek转载 2020-07-15 19:55:06 · 2153 阅读 · 1 评论 -
腾讯云互动直播二交互逻辑流程图
SDK构成互动直播SDK由两部分构成,IMSDK和AVSDK其中IMSDK为云通信SDK,为AVSDK提供账号登录、信令通道、IM弹幕消息、日志模块、日志上报等功能;AVSDK提供摄像头采集、编码、解码、美颜等一系列功能(下图为AVSDK整体框架)登录交互逻辑1.App登录业务服务器,做用户身份业务方鉴权2.业务服务器验证成功后,根据用户身份,使用私钥加密用户身份信息后生成UserSig返回给客户端3.将UserSig传给IMSDK的login接口,完成腾讯云服务器登录创建房间交互逻辑原创 2020-05-29 17:20:47 · 1756 阅读 · 0 评论 -
腾讯云直播一直播连麦实践
直播连麦连麦(也叫上麦)是比较热门的直播功能。所谓连麦,是指一个直播间中可以不仅只有一个主播,观众(或其它房间的主播)也可以参与进来与主播进行视频互动,从而增加视频直播的趣味性。单向”到“多向既然要做连麦,那么反向的一条线路就必不可少,我们这里做个假设,观众 A 从原来的普通观众变成了小主播,那么下图中就多出了一条直播流(图中红色虚线所示):注意:腾讯云 RTMP 直播支持跨房间连麦互动,所以小主播(们)可以是原房间里的普通观众,也可以是另一直播间里的其他主播。从“单向”到“多向”,这看似很原创 2020-05-29 17:02:14 · 2916 阅读 · 0 评论 -
SRT协议详解五 推流规范
基于srt官网的文章:srt官网的文章最新的srt推流地址规范修改为:URL for defaultVhostPublish stream by SRT: srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=publishPlay stream by SRT srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=requestPlay st原创 2020-05-22 14:23:32 · 3816 阅读 · 0 评论 -
SRT协议详解三 传输参数
4.1. 参数名称解析这一节,我将逐个向大家介绍会影响SRT传输性能的参数名称,他们包括:Round Trip Time(RTT,往返延时)、RTT Multiplier(RTT倍数)、Packet Loss Rate(丢包率)、Bandwidth Overhead(带宽开销)以及Latency(延时),SRT加密等。4.1.1. Round Trip Time (RTT)RTT(往返延时)表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。我们可转载 2020-05-22 11:02:14 · 7398 阅读 · 0 评论 -
NDI技术实践与应用
当人们还在依附于HDMI或SDI输入或输出时,NDI®已悄然落地。NDI®究竟是什么、它又是如何工作的呢?我们先从一张图说起吧! NDI®是Network Device Interface的简称,是种IP网络设备接口协议。NDI® 是由 NewTek 公司提出的一种网络双向影音频号传输的开放式标准技术,NDI®技术利用IP的特性,透过网络方式传递,突破传统线材的限制,所以NDI是双...原创 2019-11-29 15:04:51 · 3672 阅读 · 4 评论 -
视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等
http://www.4k123.com/thread-8194-1-1.html1、封装格式(MP4/MKV…)vs 媒体格式(H.264/FLAC/AAC…)MP4,MKV是你下载的视频文件最常见的种类。这些文件其实类似一个包裹,它的后缀则是包裹的包装方式。这些包裹里面,包含了视频(只有图像),音频(只有声音),字幕等。当播放器在播放的时候,首先对这个包裹进行拆包(专业术语叫做分离...转载 2019-11-27 14:25:20 · 4160 阅读 · 0 评论 -
4K 5G NDI媒体集成制作中的应用
近年来,随着计算机技术、移动通信技术、广电技术的不断发展,我们迎来了5G和4K超高清时代。2019年3月1日,工信部、国家广播电视总局、中央广播电视总台印发《超高清视频产业发展行动计划(2019-2022年)》。该行动计划指出,按照“4K先行、兼顾8K”的总体技术路线,大力推进超高清视频产业发展和相关领域的应用,2022年,我国超高清视频产业总体规模超过4万亿元。5G作为第5代移动通信技术具备高速...原创 2019-11-21 15:08:20 · 2674 阅读 · 0 评论 -
OBS源码分析三RTMP推流输出
1.第一步先看RTMP推流输出流程图2.第二步RTMP输出代码详细步骤说明首先是RtmpOutput输出对象的创建和编码器绑定RtmpOutput::RtmpOutput() { CreateOutputWithUniqueName();}RtmpOutput::~RtmpOutput(){ obs_encoder_release(videoEncoder_)...原创 2019-11-01 10:30:16 · 2212 阅读 · 2 评论 -
OBS源码分析二视频输出和画面显示流程
1.第一步先看视频显示和视频编码后输出流程图 2.第二步视频显示代码详细步骤说明在初始化视频时,启动了一个线程函数obs_video_thread(),所有画面源的合成,画面显示以及视频输出都在这个函数里触发。void *obs_video_thread(void *param){ uint64_t last...原创 2019-10-31 19:56:00 · 3100 阅读 · 0 评论 -
OBS源码分析一x264模块加载流程
1.第一步先看模块加载流程图2.第二步代码详细步骤和说明obs-x264是软编,obs-qsv11是intel硬编,obs-ffmpeg中包含ffmpeg_aac、ffmpeg_opus、以及nvenc编码,rtmp是推流模块;关于软编和硬编这篇文章有详细的介绍:https://www.cnblogs.com/my_life/articles/6734377.html这里...原创 2019-10-31 16:08:12 · 1451 阅读 · 1 评论 -
RTMP直播应用与延时分析
直播应用中,RTMP和HLS基本上可以覆盖所有客户端观看,HLS主要是延时比较大,RTMP主要优势在于延时低。 一、应用场景低延时应用场景包括: . 互动式直播:譬如2013年大行其道的美女主播,游戏直播等等 各种主播,流媒体分发给用户观看。用户可以文字聊天和主播互动。 . 视频会议:我们要是有同事出差在外地,就用视频会议开内部会议。 其实会议1秒延时无...原创 2018-08-31 14:39:06 · 4189 阅读 · 0 评论 -
6.ffplayer 原理、架构及代码分析——播放消息机制
播放器在播放过程,需要将播放进度、播放完成,等等消息通知给用户。常见的消息有:播放进度 播放完成对于网络流媒体视频的播放,还会用到的消息有:播放器初始化完成 播放器初始化失败 播放缓冲中 ...本地文件的播放,我们一般只需要知道播放进度和播放是否完成。对于网络流媒体,会存在网络质量导致的播放缓冲,这时画面停止同时需要显示缓冲进度条进行提示。另外网络流媒体的播放,在播放器初始化的时...原创 2019-01-08 17:29:44 · 417 阅读 · 0 评论 -
8.ffplayer 原理、架构及代码分析——包队列 pktqueue
包队列的作用包队列的作用是用于缓存解复用 (demux) 阶段出来的音视频的 packet,并将音视频 packet 分发给对应的音视频解码线程。我们前面已经知道,为了有效利用 cpu 资源,保证视频回放的帧率稳定、连贯和音视频同步等,我们必须要采用多线程的架构,采用流水线的方式,来提高系统的处理能力和数据吞吐量。流水线上的工作者,就是不同的工作线程,比如 demux 线程,adecode...原创 2019-01-08 18:00:07 · 567 阅读 · 0 评论 -
9.ffplayer 原理、架构及代码分析——变速播放的实现
基本原理变速播放的实现原理很简单。抛开音频回放暂不考虑,只有视频的情况下,变速播放就是改变了视频回放的播放帧率。如果帧率是 30fps,我们以 200% 的速度播放,那么等于是把帧率提升到了 60fps。帧率提升意味着,帧时间间距缩短,33.3ms 缩短为 16.6ms。因此如果要加速播放,就要求 cpu 有足够强大的解码能力,否则是没法做到的。而如果是减速播放,则可以减轻 cpu 的负担。...原创 2019-01-09 10:13:27 · 1619 阅读 · 1 评论 -
FEC原理及其实现
视频会议中通常使用的FEC/QOS技术,这方面的资料比较复杂和稀少,根据这么多年的工作经验,做一下分享。 在IP视频通话中丢包造成的影响多种多样。其中对视频质量的影响主要有:马赛克现象、局部变形(图像的某些区域不清晰)、图像模糊、屏幕频繁刷新或闪烁、视音频不同步、帧率下降、图像静止等等。对音频质量的影响包括:总体音频失真、间断或间歇性噪音、音频中断等。而对内容和演示数据质量的影响则包括:幻灯片...转载 2019-02-22 13:56:13 · 7742 阅读 · 0 评论 -
RTP/RTCP协议介绍
1流媒体协议 当前在Internet上传输音频和视频等信息主要有两种方式:下载和流式传输。下载情况下,用户需要先下载整个媒体文件到本地,然后才能播放媒体文件。流式传输是指传输之前首先对多媒体进行预处理(降低质量和高效压缩),然后使用缓存系统来保证数据连续正确地进行传输。使用流式传输可以边下载边观看流媒体节目,可以实现网上直播、视频会议等。目前,支持流媒体传输的协议...转载 2019-03-21 13:45:41 · 474 阅读 · 0 评论 -
720P、1080P、4K代表什么意思
什么是像素?中文全称为图像元素。像素仅仅只是分辨率的尺寸单位,而不是画质。从定义上来看,像素是指基本原色素及其灰度的基本编码。像素是构成数码影像的基本单元,通常以像素每英寸PPI(pixels per inch)为单位来表示影像分辨率的大小。例如300x300PPI分辨率,即表示水平方向与垂直方向上每英寸长度上的像素数都是300,也可表示为一平方英寸内有9万(300x300)像素...转载 2019-05-10 10:07:01 · 9146 阅读 · 0 评论 -
关于4K技术详解1
前几年4K技术就已经有人提及,今年更是成了一个非常热门的词汇,而且4K技术已经普遍应用于各类终端,如电视机、机顶盒、手机等。那么如何来理解4K这个东东呢?今天博主就谈谈自己对4K技术的认识。博主认为可以从以下几个方面来解释4K技术:内容、平台、传输、终端。1.内容。内容即具备4K分辨率的视频画面,包括视频画面、游戏画面等。关于内容又可以从以下几点谈起。1)帧率。...转载 2019-08-05 15:56:55 · 3250 阅读 · 1 评论 -
5.ffplayer 原理、架构及代码分析——音视频同步与帧率控制
音视频同步音视频同步是一个播放器要处理的基本问题,音视频同步的好坏直接影响到播放效果。解码后的音频片段和视频片段,都分别带有 pts 时间戳信息。回放时需要做的,就是尽量保证 apts(音频时间戳)和 vpts(视频时间戳),之间的差值是最小的。为了达到这个目的,就需要在 adev 和 vdev 进行渲染的时候进行控制。控制的方法就是 delay。由于音频在回放时,我们必须保证连续性,...原创 2019-01-08 17:20:42 · 829 阅读 · 0 评论 -
4.ffplayer 原理、架构及代码分析——架构设计
播放器的组成模块通过前面的播放器实现原理的介绍,我们可以初步总结出,一个播放器的主要核心模块:demux - 从输入文件分离出 audio packet 和 video packet 等等 audio decode - 解码 audio packet video decode - 解码 video packet render - 负责 audio 和 video 的渲染 adev ...原创 2019-01-07 16:41:33 · 897 阅读 · 0 评论 -
3.ffplayer 原理、架构及代码分析——调试方法
常用的调试方法设置断点 单步跟踪 设置监视变量 输出 logffplayer 的大部分代码,都是在 vs2005 环境下编写和调试的。linux 环境下有 gdb 这样的调试工具,限于个人没法熟练使用 gdb,所以选择了在 vs2005 环境下进行调试。vs2005 环境下可以方便的进行断点设置、单步跟踪、查看监视变量等操作。另外一个重要的调试手段,就是输出 debug log。这...原创 2019-01-07 14:56:30 · 577 阅读 · 0 评论 -
关于主流直播平台(虎牙,斗鱼)用到的一些技术
前言:网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,直播的打开时间和延迟变成了影响产品功能发展重要指标。 注:本文是以原文为主体,加上我自己的一些总结和补充写的那么,问题来了: 如何实现低延迟、秒开的直播?先来看看视频直播的5个关键的流程: 录制->编码->网络传输-&g...原创 2018-08-21 17:50:02 · 33609 阅读 · 3 评论 -
RTMP协议播放流程的实现及抓包分析
RTMP服务器搭建可参考:Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器 实时流协议(Real-TimeMessaging Protocol,RTMP)是用于互联网上传输视音频数据的网络协议。本API提供了支持RTMP, RTMPT,RTMPE, RTMP RTMPS以及以上几种协议的变种(RTMPTE, RTMPTS)协议所需的大部分客户端功能以及少量的...原创 2018-08-21 15:43:46 · 693 阅读 · 0 评论 -
MPEG2-TS音视频同步原理
一、引言MPEG2系统用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS这3个层次中。 在TS 层, TS头信息包含了节目时钟参考PCR(Program Clock Reference), 用于恢复出与编码端一致的系统时序时钟STC(System Time Clock)。 在PES层, 在PES头信息里包含有表示时间戳PTS(Pres...原创 2018-08-31 16:46:01 · 361 阅读 · 0 评论 -
ffmpeg对采集到摄像头视频和麦克风音频裸码封装
换个新工作,需求是将实时接收过来的音频和视频封装成mpegts格式,自然想到的是用ffmpeg进行编码,网上找了下这方面资料,无奈找了半天 没找到相应的资料,关于ffmpeg编译命令行的到是非常多,所以自己就研究总结下,参考ffmpeg中的例子,个人用ffmpeg时间不多,理解有限, 可能有错误之处,望指点一二。输入参数:输入视频流:h264,YUV420,分辨率1280*720,帧率25...原创 2018-08-31 16:36:07 · 1967 阅读 · 2 评论 -
十大流媒体开源项目
1 FFmpeg:全球领先的多媒体框架 http://ffmpeg.org/ 2 VLC:开源的跨平台多媒体播放器及框架 http://www.videolan.org/ 3 live555:开源流媒体服务项目 http://www.live555.com/ 4 EasyDarwin: 企业级的流媒体平台框架 https://github.com/EasyDarwin 5 ijkplaye...原创 2018-08-21 15:27:09 · 16268 阅读 · 2 评论 -
Ffmpeg 实现文件切割合并
文件切割是一项很常见的基本功能,通过Ffmpeg可以很容易实现这项功能。 首先介绍下基本原理,文件切割说白了就过滤掉文件的部分音视频包,按照什么规则过滤呢?答案是时间戳。文件中每个视频及音频包都有时间戳用来标识在哪个时间点该包被播放。当我们有过滤需求,比如需要过滤掉视频文件的第3分钟到5分钟的视频,首先我们需要计算第三分钟及第五分钟的音视频包时间戳区间,然后遍历视频文件中所有音视...原创 2018-08-20 15:23:39 · 967 阅读 · 0 评论 -
av_seek_frame使用-附源码
项目中做点播功能,需要快进快退功能,一个ts文件里可能包含多路视频流,根据视频流数seek即可。大概思路:可以根据pts来计算一桢在整个视频中的时间位置:timestamp(秒) = pts * av_q2d(st->time_base)然后再转换为内部的时间戳ffmpeg同样为我们提供了不同时间基之间的转换函数:int64_t av_rescale_q(int64_...原创 2018-08-20 14:57:06 · 1313 阅读 · 0 评论 -
ffmpeg 转换其他格式到YUV420P
代码参考了网上的文章1.申请bufferAVFrame *pFrame,*pFrameYUV;pFrame=avcodec_alloc_frame();pFrameYUV=avcodec_alloc_frame();uint8_t *out_buffer; out_buffer=new uint8_t[avpicture_get_size(PIX_FMT_RGB24, pC...原创 2018-08-03 13:35:17 · 3112 阅读 · 0 评论 -
AAC格式分析
转自 http://www.cnblogs.com/caosiyang/archive/2012/07/16/2594029.html ADTS帧首部结构:序号 域 长度(bits) 说明 1 Syncword 12 all bits must be 1 2 MPEG version 1 0 for MPEG-4, 1 fo...转载 2018-08-03 11:22:14 · 2088 阅读 · 0 评论 -
rtp over tcp
转自:http://blog.csdn.net/evsqiezi/article/details/22881151Normally, RTSP provide streaming over UDP. By nature, UDP is a better choice as it provides robust streaming capability for media. However, it...转载 2018-08-03 11:15:59 · 972 阅读 · 0 评论 -
音视频同步(播放)原理
每一帧音频或视频都有一个持续时间:duration:采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。。正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采样...转载 2018-09-06 15:59:26 · 3534 阅读 · 0 评论 -
如何测试发送码率
上一篇讲了匀包机制,这一篇讲下如何测试发送码率,丢包率;码率和发送的包数在界面可以手动设置,发送线程的个数根据实际的cpu核数确定,实际发送的码率由另外一个线程计算,用到的知识点有多线程事件同步,码率计算等,核心代码贴上来,仅供参考:等待所有发送线程发送完,计算码率码率和美妙发送次数,每次发送间隔的计算需要好好理解一下。...原创 2018-09-21 14:02:24 · 1289 阅读 · 0 评论 -
2.ffplayer 原理、架构及代码分析——可移植性的考虑
可移植是软件开发必然考虑和追求的一个目标,软件的最大威力(已经不是效率可以形容的啦^_^)就在于重用,可移植性则是重用的一个重要保证。实现了重用,就意味了已经解决的问题,不用再解决,已经实现的功能,不用再去实现,借助开源、移植、重用、拷贝、分享,一个软件功能一旦实现,理论上就可以服务于整个人类...那么我们如何做好可移植性?使用标准 c 语言编写代码 使用可移植的标准功能库 跟平台相关...原创 2019-01-07 14:48:23 · 458 阅读 · 0 评论 -
1.ffplayer 原理、架构及代码分析——播放器功能原理
多媒体播放器的主要功能音视频回放 音频回放,要保证连续性 视频回放,要保证帧率稳定 音视频同时回放,要保证音视频同步播放器的最最基本的功能和指标,就是音视频回放,连续性、稳定性、帧率控制、音视频同步。这些基本功能如果做不好,就不可能是一个好的播放器,也不要考虑其他附加功能的实现。 多媒体播放器的附加功能媒体总时长和播放进度显示 播放/暂停/seek 等播放控制功能 音频可视...原创 2019-01-07 14:31:08 · 1174 阅读 · 0 评论