随笔分类 - FFmpeg
摘要:什么是TS? TS(Transport Stream,传输流),一种常见的视频封装格式,是基于MPEG-2的封装格式(所以也叫MPEG-TS),后缀为.ts TS的分层 TS文件分为三层,如下所示(可以倒序更好理解) TS层(Transport Stream):在PES层基础上加入了数据流识别信息和
阅读全文
摘要:代码 #include <stdio.h> #define __STDC_CONSTANT_MACROS //因为ffmpeg是C语言编写的所以要继承C语言的语法格式 extern "C" { #include "libavcodec/avcodec.h" #include "libavformat
阅读全文
摘要:作用 SDL(Simple DirectMedia Layer)库的作用,说白了就是封装了复杂的视音频交互工作,简化了视音频处理的难度 特点 跨平台 开源 结构 SDL结构如下所示。可以看出它实际上还是调用了DirectX等底层API完成了和硬件的交互 SDL的工作过程 SDL视频显示的数据结构 S
阅读全文
摘要:AVCodec AVCodec是存储编解码器信息的结构体。 /** * AVCodec. */ typedef struct AVCodec { /** * Name of the codec implementation. * The name is globally unique among e
阅读全文
摘要:AVFrame AVFrame是包含码流参数较多的结构体 /** * Audio Video Frame. * New fields can be added to the end of AVFRAME with minor version * bumps. Similarly fields tha
阅读全文
摘要:FLV的封装格式 FLV(Flash Video)是一种常见的视频封装格式,最初由Adobe公司开发,用于在网络上播放的视频内容。FLV格式通常用于将视频和音频流组合在一起,并以一种紧凑的方式存储在单个文件中。下面是FLV封装格式的一些关键点: FLV Header Header记录了FLV的类型,
阅读全文
摘要:什么是SSA SSA(SubStation Alpha),是由CS Low,比传统字幕格式如SRT格式功能更加先进的字幕文件格式。 该格式字幕的外挂文件以*.ssa作为后缀。 什么是ASS? ASS(Advanced SubStation Alpha),是一种比SSA更为高级的字幕格式,其实质版本是
阅读全文
摘要:什么是AAC AAC(Advanced Audio Coding,高级音频编码)是一种声音数据的文件压缩格式分为:AAC分为ADIF和ADTS两种文件格式。 什么是ADIF和ADTS? ADIF:音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需要进行在音频数据流中间开始的解码
阅读全文
摘要:PCM PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样 量化、编码转换成的标准数字音频数据。 如何理解PCM 模拟信号数字化:PCM是一种将模拟信号转换为数字信号的技术。在模拟信号中,声音、视频等信息是连续变化的,而在数
阅读全文
摘要:什么是H.264 高度压缩数字视频编解码器标准。 H.264的数据格式是怎样的? H.264是一种视频编码标准,定义了视频数据的压缩和编码方式,但没有规定特定的数据格式。然而,H.264编码生成的视频流通常会采用一种常见的容器格式来封装,以便存储和传输。常见的容器格式包括MP4 AVI MKV MO
阅读全文
摘要:YUV YUV是一种颜色编码方式,通常用于数字视频和图像处理中。它将颜色信息分解成亮度(Y)和色度(U和V)两个分量 Y表示亮度(Luminance),即灰度信息,决定了图像得明暗程度。 U和V表示色度(Chromminance),用于描述图像得色彩信息和饱和度。U表示蓝色得色度,V表示红色得色度。
阅读全文
摘要:AVPacket AVPacket是存储压缩编码数据相关信息的结构体。 typedef struct AVPacket { /** * Presentation timestamp in AVStream->time_base units; the time at which * the decom
阅读全文
摘要:AVStream是存储每一个视频/音频信息的结构体。 /** * Stream structure. * New fields can be added to the end with minor version bumps. * Removal, reordering and changes to
阅读全文
摘要:AVCodec是存储编解码信息的结构体。 /** * AVCodec. */ typedef struct AVCodec { /** * Name of the codec implementation. * The name is globally unique among encoders a
阅读全文
摘要:AVIOContext /** * Bytestream IO Context. * New fields can be added to the end with minor version bumps. * Removal, reordering and changes to existing
阅读全文
摘要:AVCodecContext(位于 avcodec.h) AVCodecContext是包含变量较多的结构体(感觉差不多是变量最多的结构体).本文将会大概分析一下该结构体里面每个变量的含义和作用。 /** * main external API structure. * New fields can
阅读全文
摘要:typedef struct AVFormatContext结构体介绍 表示解复用(解码)或复用(编码)多媒体流的格式上下文。在使用FFMPEG进行开发的时候,AVFormatContext是一个贯穿时钟的数据结构,很多函数都要用它作为参数。它是FFMPEG解封装(flv,mp4,rmvb,avi)
阅读全文
摘要:背景知识 FFmpeg是一个强大的开源软件项目,包含一套大量的库和程序,用于处理多媒体数据。它可以编码、解码、流式传输、过滤和播放几乎任何人类和及其创建的音频和视频。 使用FFMPEG作为内核视频播放器 Mplayer、 ffplay 射手播放器 暴风影音 KMPlayer QQ影音 使用FFMPE
阅读全文
摘要:开源地址 https://github.com/mumble-voip/mumble Mumble Mumble:语音通信软件 低延迟、高质量 低延迟通信 C/S(Client/Server) 跨平台(跨风俗来运行) Opus音频编码器 SSL/TLS加密 源码整体结构分析 mumble/src/c
阅读全文
摘要:总体架构 音频基本原理: 声波捕获:音频信号是由声波振动引起的,通常使用麦克风等传感器将声波转化为电信号。声波的频率和振幅决定了声音的音调和音量。 采样和量化:模拟音频信号需要经过采样和量化,将连续的模拟信号转换为离散的数字信号。采样率表示每秒采集的样本数,量化位数表示每个样本的精度。 编码:采样后
阅读全文

浙公网安备 33010602011771号