自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

幽雨雨幽

专注等于充实

  • 博客(855)
  • 资源 (5)
  • 收藏
  • 关注

转载 FFmpeg代码导读系列(一)----基础篇

推流端:负责音视频数据的采集、处理、编码及封装后将数据推送至至源站;服务端:涵盖源站和CDN,接收来自推流端的音视频数据,然后将数据分发至各播放端;播放端:从CDN拉取直播数据,解复用、解码后渲染音视频数据;图1. 直播框架图.png引入HEVC编码模块:需要支持HEVC格式的编解码,该部分不属于本文的介绍范畴,我们有在其它文章中介绍如何在iOS11上进行HEVC的硬编硬解,感兴趣的朋友可自行查阅;RTMPHTTP-FLV流媒体协议需要增加对HEVC。

2024-04-17 15:09:51 2

原创 linux定时任务之crontab

crontab命令在linux中执行循环定时任务.

2024-04-09 16:16:47 363

转载 音频格式--PCM介绍

对于语音电话信道,每秒采集 8,000 个样本就足够了,即每 125 μs 采集一个样本,因为根据采样定理,当采集频率为最大频率两倍的电信号样本时信号,这些样本将包含重建原始信号所需的所有信息。PCM指的是脉冲编码调制(Pulse Code Modulation),是一种数字信号处理技术,将由波形表示的模拟音频信号转换为由1和0表示的数字音频信号。在电话交谈的采样中,由于样本在语音强度范围内可以有无限多个值,因此电话信道中的范围约为 60 dB。为了简化过程,所做的是对一系列预定值中最接近的值进行近似。

2024-03-29 16:56:41 12

转载 语音识别传统方法(GMM+HMM+NGRAM)概述

2024-03-19 11:22:01 21

转载 语音大模型之Whisper

Whisper模型方法证明了只需要用大量的弱标签数据,不需要很复杂的模型和调优方法,就可以到达非常不错的识别性能,尤其是在鲁棒性和泛化性上。这也是大家比较公认的一个结论,即数据才是模型性能提升的最大影响因素。

2024-03-05 14:17:45 133

原创 一小时实践入门 PyTorch

链接:

2024-02-19 14:29:46 338

转载 深度学习之语音识别-音频基础知识、声谱图(Spectrogram)

但由于谐波的多少不同,并且各谐波的幅度各异,因而产生了不同的音色。轻轻敲鼓时,鼓膜振动的幅度小,发出的声音弱。音色是人们区别具有同样响度、同样音调的两个声音之所以不同的特性,或者说是人耳对各种频率、各种强度的声波的综合反应。另外,人们对响度的感觉还和声波的频率有关,同样强度的声波,如果其频率不同,人耳感觉到的响度也不同。通过改变它们的振幅(amplitude),即这个震动的具有的能量大小,被称为音量(volume)纵坐标(频率):纵坐标表示声音频率,纵坐标越大,说明频率越高,越接近0,说明频率越低。

2024-01-24 11:07:50 137

原创 Kafka: 官方文档

https://kafka.apache.org/documentation/#topicconfigs

2024-01-16 14:40:28 368

转载 Kafka: 理解Kafka offset

因此,如果需要保证主题内或跨主题的顺序性,需要在生产者和消费者端进行额外的处理,例如使用同一个分区键或同一个消费组。生产者也可以自定义分区算法。消费者在消费 Kafka 消息时,需要维护一个当前消费的 offset 值,以及一个已提交的 offset 值。当前消费的 offset 值表示消费者正在消费的消息的位置,已提交的 offset 值表示消费者已经确认消费过的消息的位置。提交 offset 是消费者在消费完一条消息后,将当前消费的 offset 值更新到 Kafka broker 中的操作。

2024-01-16 14:39:20 68

转载 详解Enhanced-RTMP支持H.265

SrsVideoFrame中的SrsSample数据,是去掉flvTagHeader的视频帧数据,这样传递到下行后,可以根据需要再次打包flvTagHeader,下行可以再次打包成传统的CodecId=12的H.265格式,也可以打包成Enhance RTMP格式(因为下行的兼容性问题,不推荐下行打包成Enhance RTMP格式,下一节会说明原因)准确的说,RTMP是传输协议,传输协议内部的封装是flv格式,其实我们所说的支持H.265,是在flv封装格式里面支持H.265编码数据。

2024-01-03 14:58:53 219

转载 《ZLToolKit源码学习笔记》(2)工具模块之日志功能分析

该类包含一个纯虚函数write,以及一个静态函数printTime,两个成员函数name和setLevel,以及一个虚函数format,实际的日志输出最终在format中,如果是终端,还会对不同级别的日志信息分颜色输出。当执行logContextCapturer

2023-10-27 16:52:57 198

原创 视频分辨率: UXGA/SVGA/VGA/QVGA/QQVGA

1. VGAVideo Graphics Array, 视频图形阵列, 最大分辨率: 640 * 480, 纵横比: 4/32. SVGASuper Video Graphics Array,高级视频图形阵列,由VESA为IBM兼容机推出的标准,属于VGA的替代品。最大支持分辨率: 800*600, 纵横比: 4/33. XGAExtended Graphics Array,扩展图形阵列,是IBM于1990年发明的, 最大支持分辨率: 1024*768, 纵横比: 4/34. SXGA。

2023-08-09 16:59:06 1165

原创 音视频开源库: libsrtp

初始化 srtp 库,初始化内部加密算法,在使用 srtp 前,必须要调用了。通过这个结构传递给 libsrtp,用于 session key 的生成。设置和获取 stream 的 ROC,这两个接口在最新的 2.3 版本加入。libsrtp是被广泛使用的 SRTP/SRTCP 加密的开源项目。使用该库作为基础库的开源音视频项目: srs/zlmediakit。,对应我们之前描述的 srtp 防重放攻击的窗口大小。,用来初始化加解密参数,在。,是否允许重传相同序号的包。RTCP 包的加解密接口。

2023-07-18 14:18:55 691

转载 使用OpenSSL的内存BIO

BIO

2023-06-15 16:33:41 533

转载 Kubernetes 设计模式笔记 —— 声明式部署

或者不允许有 downtime,但在升级过程中,新旧版本的服务同时在线会造成资源消耗的增长(旧版本开始停止的时候就添加新版本的实例)。一旦用户确认新版本的 Pod 是健康的,可以提供服务,就将入站流量从旧的 Pod 副本切换到新版本的副本。比如在升级过程中,会有两个版本的容器同时运行,这有可能导致接收服务的客户端出现一些 issue,尤其当更新引入了没有向后兼容的特性时。滚动升级有一个切换的过程,必然导致某个时间段内新旧版本的应用同时运行,从而实际运行的 Pod 数量大于声明的副本数量。

2023-03-16 17:59:25 192 1

原创 微信小程序媒体组件live-player/live-pusher

开发者文档:

2023-02-08 10:11:47 172

转载 开源多媒体框架

Mpp的API思路其实跟目前绝大多数的编解码库是一致的,都是queue/dequeue的队列操作方式,先设置好编解码状态,然后不停的queue/dequeue input/output buffer就可以实现编解码控制了。一个良好的多媒体框架提供了一个直观的API和一个模块化的架构而易于添加对新的音频、视频和容器格式以及传输协议的支持。该文章记录的每个开源库的简介和链接地址,总结的很好,有常用的FFMPEG,WebRTC,VLC,X264、X265等,也有人工智能处理相关的,以及播放器类。

2023-01-19 14:48:34 529

转载 影音视频领域开源项目专区

ijkplayerExoplayerVLC PlayerDPlayer5KPlayer

2023-01-19 14:46:23 477

原创 开源播放器

GSYVideoPlayer: 视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS支持,支持弹幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频本身自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,直接添加控件为封面,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,其他一些小动画效果,rt

2023-01-05 11:57:48 256

转载 Linux下玩转nginx系列(八)---如何使用upsync模块实现动态负载均衡

一、HTTP动态负载均衡动态负载均衡动态负载均衡策略类似于加权轮询策略,可以通过对于后端服务器集群的状态监测,量化不同服务器的性能差异,来周期性调整服务器的比重来实现权重的动态调整。在nginx中传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf。这类似分布式的配置中心。动态负载均衡实现方案Consul+Consul-template 每次

2022-12-07 17:56:27 380

原创 国标系列博文

DZ 先生。

2022-11-14 14:52:09 108

转载 重磅:SRS 5.0正式支持GB28181

而这些问题的解决方案都是Lazy Sweep,也就是互相持有的不是裸指针,而是Wrapper指针(有点像C++ 11的智能指针只是没有什么智能可言),因为Wrapper释放后Resource还是可用的,其他Wrapper对象还是可以使用Resource,我们在释放Resource时,等所有Wrapper都释放后再安全释放,也就是Lazy Sweep。从未来看,GB协议也不一定就是唯一可用的协议,当然了人应该活在当下,既然有这么多开发者在用SRS做GB,那么SRS尽量把GB做好一些,也是应该做的。

2022-11-08 14:19:31 3674

转载 SRS:流媒体服务器如何实现负载均衡

, Benjamin当我们的业务超过单台流媒体服务器的承受能力,就会遇到负载均衡问题,一般我们会在集群中提供这种能力,但实际上集群并非是唯一的实现方式。有时候负载均衡还会和服务发现等时髦词汇联系起来,而云服务的LoadBalancer无疑是不可回避,因此,这个问题其实相当复杂,以致于大家会在多个场合询问这个问题,我打算系统的阐述这个问题。好吧,让我们详细聊聊负载和负载均衡。

2022-11-03 11:40:33 283

转载 http-fmp4

http-fmp4

2022-11-02 20:12:40 400

原创 java后端音视频

https://www.jianshu.com/p/3d17c52f4ea8

2022-10-26 17:25:33 536

原创 coturn

源码:

2022-09-23 16:55:54 260

转载 技术分享| 视频传输Simulcast与Svc

可伸缩视频编码SVC(Scalable Video Coding)是一种可扩展的视频编码模式,是H.264标准的一个扩展,最初由JVT在2004年开始制定。H.264 SVC是H.264标准的扩展部分,SVC扩展部分引入了一种传统H.264 AVC不存在的概念——编码流中的层。基本层编码最低层的时域、空域和质量流;增强层以基本层作为起始点,对附加信息进行,从而在解码过程中重构更高层的质量、分辨率和时域层。通过解码基本层和相邻增强层,解码器能生成特定层的视频流。

2022-09-17 16:02:20 447

转载 【H264】压缩编码原理

H264 视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264 以及 FFmpeg 等开源库的推出,大多数使用者无需再对 H264 的细节做过多的研究,这大降低了人们使用 H264 的成本。但为了用好 H264,我们还是要对 H264 压缩编码的基本原理弄清楚才行。今天我们就来看看 H264 压缩编码的基本原理。回到顶部H264 编码器采用的是变换和预测的混合编码法。由上图所示,输入的帧或场 Fn 以宏块为单位被编码器处理。首先,按帧内或帧间预测。

2022-09-09 13:55:02 232

转载 视频编码基础知识2-H264帧间编码原理

再结合上一节的编码器来看,当传输缓冲器接收到B帧时会暂时缓冲在传输缓冲器中,直到获取到I帧或P帧时,会将传输缓冲器中的B帧通过编码控制重新经过视频信源编码器、视频复合编码器、传输缓冲器一起依次排在P帧之后通过传输编码器输出。这里以点盖面,以车子的车牌为例:车牌向左移动了,就是宏块位置发生了变化,在第二帧数据中就不用再次编码宏块的左侧和上侧的像素信息,只需要记录宏块的坐标信息(运动矢量),从而减少编码和传输的数据量(P帧和B帧的来源)。与I帧相似程度高达到95%以上会编码成B帧,相似程度70%编码成P帧。

2022-09-09 13:44:14 593

转载 H264系列--简单的视频编码历史介绍

所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。

2022-09-08 11:21:54 467

转载 流媒体基础知识TS流 PS流 ES流区别

IP数据报有首部和数据两部分组成的,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的。首部包括:总长度、标识、MF、DF、片偏移。数字信号实际传送的是数据流,一般数据流包括以下三种:(1)ES流(Elementary Stream):也叫基本码流,包含视频、音频或数据的连续码流。(2)PES流(Packet Elementary Stream):也叫打包的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。(3)TS流:也叫传输流,是由固定长度为

2022-09-06 17:40:52 613

原创 视音频数据处理入门

参见。

2022-09-06 13:36:36 108

原创 FFmpeg源代码:avformat_write_header/av_write_frame/av_interleaved_write_frame/av_write_trailer

跟写视频文件相关的三个配套接口是avformat_write_header()用于写视频文件头av_write_frame()用于写视频数据av_interleaved_write_frame() 用于交错写视频数据av_write_trailer()用于写视频文件尾。

2022-08-26 11:14:52 867

原创 FFmpeg源代码:avformat_new_stream

avformat_new_stream接口声明位于ffmpeg/libavformat/avformat.h 中,主要功能为在AVFormatContext 中创建 Stream 通道 与该接口相关的结构体avformat_new_stream接口实现位于ffmpeg/libavformat/utils.c 中

2022-08-26 10:15:26 731

原创 FFmpeg源代码:avformat_alloc_output_context2()

avformat_alloc_output_context2接口位于ffmpeg/libavformat/avformat.h中,avformat_alloc_output_context2()函数可以初始化一个用于输出的AVFormatContext结构体。如果指定为NULL,可以设定后两个参数(format_name或者filename)由FFmpeg猜测输出格式。根据格式名称,FFmpeg会推测输出格式。输出格式可以是“flv”,“mkv”,“mpegts”等等。...

2022-08-25 22:18:18 365

原创 音视频基础知识思维导图

音视频基础知识

2022-08-19 16:20:23 258

原创 FFmpeg源代码:av_image_get_buffer_size&av_image_copy_to_buffer

对齐的对齐数,也就是按多大的字节进行内存对齐。比如设置为1,表示按1字节对齐,那么得到的结果就是与实际的内存大小一样。再比如设置为4,表示按4字节对齐。也就是内存的起始地址必须是4的整倍数。av_image_get_buffer_size 接口声明位于libavutil/imgutils.h。根据像素格式、宽、高、linesize 对其方式来计算所需的内存大小。重点说明一个参数align:此参数是设定。...

2022-08-12 16:31:16 1104

原创 FFmpeg源代码:av_read_frame

例如,解码视频的时候,每解码一个视频帧,需要先调用 av_read_frame()获得一帧视频的压缩数据,然后才能对该数据进行解码(例如H.264中一帧压缩数据通常对应一个NAL)。从接口定义中可以看出,av_read_frame()调用了read_frame_internal()1. ff_read_packet()从相应的AVInputFormat读取AVPacket数据;ffmpeg中的av_read_frame()的作用是读取码流中的。read_frame_internal()是一个内部函数。...

2022-08-10 23:17:28 381

原创 FFmpeg源代码:AVFormatContext相关接口

需要注意的是,有些封装格式并没有header 或者header中并没有存储足够的信息,所以还需要调用avformat_find_stream_info函数来读取并解码一些帧来获取足够的信息。该接口的功能是打开一个输入媒体文件,读取文件头(如果有的话,MPEG没有format header)并探测视频封装格式,将媒体文件信息存储到ps中。dictionay:附加的一些选项,一般情况下可以设置为NULL。该接口注释已经写的很详细了,中文简单概述下。url:打开的视音频流的URL。.........

2022-08-10 18:02:40 211

转载 nginx代理多次302的解决方法(nginx Follow 302)

这篇文章主要介绍了nginx代理多次302的解决方法(nginx Follow 302),详细的介绍了解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧用proxy_intercept_errors和recursive_error_pages代理多次302302是HTTP协议中的一个经常被使用状态码,是多种重定向方式的一种,其语义经常被解释为“Moved Temporarily”。这里顺带提一下,现实中用到的302多为误用(与303,307混用),在HTTP/1

2022-05-06 11:13:12 15801

GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求.pdf

GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求.pdf

2024-03-27

基于大规模弱监督的鲁棒语音识别

基于大规模弱监督的鲁棒语音识别

2024-03-05

MediaInfo_GUI_0.7.66_Windows_x64_WithoutInstaller.7z

一个专门查看视音频格式的工具,作者雷神

2022-01-13

ffmpeg基础库编程开发_add_notes.pdf

音视频封装格式,编码格式,ffmpeg基础接口的介绍

2019-05-24

video_file_format_spec_v10_1.pdf

flv官方文档。The open FLV and F4V file format specification specification documents file format information for storing media content used to deliver streaming audio and video for playback in Adobe Flash Player and Adobe AIR. These video file formats are open, allowing other products and technologies to implement these specifications.

2018-05-14

Lex和Yacc从入门到精通pdf

本系列文档就是专门用来由浅入深的介绍两 个有名的Unix 工 具Lex 和Yacc,并会一步一步的详细解释如何用这两个工具 来实现我们想要的任何 功能的解析程序

2017-12-25

rtmpdump-2.3_add_note

rtmpdump-2.3 add useful notes for developers。rtmpdump is a toolkit for RTMP streams. All forms of RTMP are supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.

2017-09-20

空空如也

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

TA关注的人

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