首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

8.ffmpeg-基础常用知识

视频解码 软件解码:即通过软件让CPU来对视频进行解码处理,缺点耗电发热,优点兼容强 硬件解码:是将原来全部交由CPU(显卡上的一个核心处理芯片,处理计算机中与图形计算有关的工作)来处理的视频数据的部分交由...音频解码 将音频码流(aac、ape等)解码成pcm 4.像素格式 压缩编码中一般使用的是RGB24,YUV420 , YUV420P, YUV422P, YUV444P等格式数据,最常见的是YUV420P...对于YUV420P格式(planar平面封装),先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V,比如:YYYYYYYY UU VV,所以Ffmpeg中存储P格式数据时,data...[0]数组存y,data[1]数组存u,data[2]数组存v 对于YUV420SP格式(semi Planar半平面封装),先连续存储所有像素点的Y,然后连续存储UV,比如:YYYYYYYY UVUV...RGB转YUV Y = 0.299R + 0.587G + 0.114B U'= (BY)*0.565 V'= (RY)*0.713 YUV转RGB R = Y + 1.403V' G = Y -

60650
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《FFmpeg从入门到精通》读书笔记(一)

    3 编码 Encoding 4 封装 Muxing 其中需要经过六个步骤 1 读取输入源 2 进行音视频的解封装 (调用libavformat中的接口实现) 3 解码每一帧音视频数据 (...调用libavcodec中的接口实现) 3.5 转换参数 4 编码每一帧音视频数据(调用libavcodec中的接口实现) 5 进行音视频重新封装(调用libavformat中的接口实现) 6...ffmpeg -i 1.mp4 -vcodec mpeg4 -b:v 200k -r 15 -an output2.avi 以上命令中参数含义: 1.转封装格式从mp4转为avi 2.视频编码从h264...转换为mpeg4格式 3.视频码率从原来的16278 kb/s转换为200 kb/s 4.视频帧率从原来的24.15 fps转换为15 fps 5.转码后的文件不包括音频(-an参数) ffprobe...avc1 编码的标签数据 coded_width=1088 图像的宽度 coded_height=2256 has_b_frames=0 包含B帧的信息 pix_fmt=yuv420p 图像显示的色彩格式

    1.6K20

    流媒体解码及H.264编码推流简介

    Planar格式不同的分量分别存储在不同的数组中,例如AV_PIX_FMT_YUV420P存储方式如下: data[0]: Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8…… data...[1]: U1, U2, U3, U4…… data[2]: V1, V2, V3, V4…… Packed格式的数据都存储在同一个数组中,例如AV_PIX_FMT_RGB24存储方式如下: data...[0]: R1, G1, B1, R2, G2, B2, R3, G3, B3, R4, G4, B4…… 3 像素格式名称后面有“BE”的,代表是Big Endian格式;名称后面有“LE”的,代表是...buffer指针数组; const int srcStride[],const int dstStride[] 为输入输出图像数据各颜色通道每行存储的字节数数组; int srcSliceY 为从输入图像数据的第多少列开始逐行扫描...而read()中主要分两个步骤 使用grab()方法解码视频帧 注意解码的步骤不许要做,保证后面的数据能够正确解析 使用retrieve将yuv转换为rgb数据 这里的yuv和rgb都是未压缩的数据

    1.8K50

    ffmpeg 入门_python入门笔记

    3 编码 Encoding 4 封装 Muxing 其中需要经过六个步骤 1 读取输入源 2 进行音视频的解封装 (调用libavformat中的接口实现) 3 解码每一帧音视频数据 (...调用libavcodec中的接口实现) 3.5 转换参数 4 编码每一帧音视频数据(调用libavcodec中的接口实现) 5 进行音视频重新封装(调用libavformat中的接口实现) 6...ffmpeg -i 1.mp4 -vcodec mpeg4 -b:v 200k -r 15 -an output2.avi 以上命令中参数含义: 1.转封装格式从mp4转为avi 2.视频编码从h264...转换为mpeg4格式 3.视频码率从原来的16278 kb/s转换为200 kb/s 4.视频帧率从原来的24.15 fps转换为15 fps 5.转码后的文件不包括音频(-an参数) ffprobe...avc1 编码的标签数据 coded_width=1088 图像的宽度 coded_height=2256 has_b_frames=0 包含B帧的信息 pix_fmt=yuv420p 图像显示的色彩格式

    1.7K30

    Linux系统驱动之硬件_IMX6ULL的LCD控制器

    针对高速数据传输(行场信号) 支持DOTCLK模式:RGB接口,就是前面讲的TFT-RGB接口 支持ITU-R BT.656接口,可以把4:2:2 YcbCr格式的数据转换为模拟电视信号 8/16/18...,在每个半字内部放换字节, 即0x12345678转换为0x34127856 [13:12] CSC_DATA_SWIZZLE R/W 显存中的数据被传入LCD控制器内部并被转换为24BPP后,在它被转给...0x56781234 0x3:HWD_BYTE_SWAP,在每个半字内部放换字节, 即0x12345678转换为0x34127856 [11:10] LCD_DATABUS_WIDTH R/W LCD数据总线宽度...,就是对外输出的LCD数据的位宽, 0x0:16位; 0x1:8位; 0x2:18位; 0x3:24位 [9:8] WORD_LENGTH R/W 输入的数据格式,即显存中每个像素占多少位, 0x0:16...2.10 LCDIF_NEXT_BUF寄存器 位域 名 读写 描述 [31:0] ADDR R/W 下一帧在显存中的地址 LCD控制器传输完当前帧后,会把LCDIF_NEXT_BUF寄存器的值复制到

    1.4K20

    第一次面字节,我贼紧张!

    二进制帧 HTTP/2 厉害的地方在于将 HTTP/1 的文本格式改成二进制格式传输数据,极大提高了 HTTP 传输效率,而且二进制数据使用位运算能高效解析。...: END_HEADERS 表示头数据结束标志,相当于 HTTP/1 里头后的空行(“\r\n”); END_Stream 表示单方向数据发送结束,后续不会再有数据帧。...AOF 方式写入到 AOF 文件,写入完成后通知主进程将新的含有 RDB 格式和 AOF 格式的 AOF 文件替换旧的的 AOF 文件。...这样也不太“智能”了,要是有一个节点能监控「主节点」的状态,当发现主节点挂了,它自动将一个「从节点」切换为「主节点」的话,那么可以节省我们很多事情啊!...,直到数组完全排序 具体按以下步骤实现: 1,创建两个指针分别指向数组的最左端以及最右端 2,在数组中任意取出一个元素作为基准 3,左指针开始向右移动,遇到比基准大的停止 4,右指针开始向左移动,遇到比基准小的元素停止

    23910

    音视频相关技术基础知识总结

    2、色彩空间 2.1、RGB 通过R、G、B三种基础色,可以混合出所有的颜色 2.2、YUV 也叫,YCbCr,是一种亮度与色度分离的色彩格式 (1)Y:亮度,就是灰度值,出了表示亮度信号外,还含有较多的绿色通道量...2.3、RGB与YUV的换算 (1)RGB转YUV算法 Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436B V = 0.635R - 0.515G...- 0.100B (2)YUV转RGB算法 R = Y + 1.14V G = Y - 0.39U - 0.58V B = Y + 2.03U 3、音频 3.1、基本知识 人类能够听到的所有声音都称之为音频...PCM:音频数据的承载方式最常用的是脉冲编码调制。 在自然界中,声音是连续不断的,是一种模拟信号,那怎样才能把声音保存下来呢?就是将这些模拟信号数字化,即模数转换,将模拟信号转换为数字信号。...单声道:1个声道 双声道:2个声道 立体声道:默认为2个声道 立体声道(4声道):4个声道 3.6、码率 码率是指一个数据量中每秒钟能通过的信息量,单位bps(bit per second) 码率 =

    1.5K41

    AVFormatContext封装层:理论与实战

    一、封装格式简介 封装格式(container format)可以看作是编码流(音频流、视频流等)数据的一层外壳,将编码后的数据存储于此封装格式的文件之内。...不同封装格式适用于不同的场合,支持的编码格式不一样,几个常用的封装格式如下: 1、FFmpeg 中的封装格式 FFmpeg 关于封装格式的处理涉及打开输入文件、打开输出文件、从输入文件读取编码帧、往输出文件写入编码帧这几个步骤...avformat_find_stream_info():这个函数会读取一段视频文件数据并尝试解码,将取到的流信息填入 AVFormatContext.streams 中。...本函数将存储在输入文件中的数据分割为多个 packet, 每次调用将得到一个 packet。...而是直接将视音频压缩码流从一种封装格式文件中获取出来然后打包成另外一种封装格式的文件。

    50210

    Java实现颜色RGB转换详解

    图像处理:从图片中读取 RGB 值,分析图像中不同像素的颜色,或者调整图片的色彩。数据可视化:将数据转化为不同颜色,帮助直观表达数据趋势或类别。源码解析1....RGB 表示的三个颜色通道 R、G 和 B 各自的值可以通过 Java 中的 Integer.toHexString() 方法转换为对应的十六进制字符串。...%02X 格式符表示转换为两位的十六进制大写字母。2. 十六进制颜色代码 转 RGB将十六进制颜色代码转换为 RGB 也是常见需求,特别是在解析 CSS 或用户输入颜色值时。...输入校验繁琐:必须确保输入的 RGB 或十六进制颜色代码格式正确。核心类方法介绍Integer.toHexString():将整数转换为十六进制字符串。...这个数组是将十六进制颜色代码 #FF5733 转换为RGB格式的结果。总结:这个测试用例的目的是确保十六进制颜色代码到RGB值的转换是正确的。

    14833

    FFmpeg编解码处理1-转码全流程简介

    目的是:通过视频buffersink滤镜将视频流输出像素格式转换为编码器采用的像素格式;通过音频abuffersink滤镜将音频流输出声道布局转换为编码器采用的声道布局。为下一步的编码操作作好准备。...与ffmpeg命令不同的是,ffmpeg命令指定编码器参数为“copy”时,将不会启动编解码过程,而仅启用转封装过程,整个过程很快执行完毕;本例程指定编码格式为“copy”时,则会使用相同的编码格式进行解码与编码...// 3.2 从fifo中取出音频帧,音频帧尺寸是编码格式中音频帧尺寸 // FIFO中可读数据大于编码器帧尺寸,则从FIFO中读走数据进行处理 while ((av_audio_fifo_size...视频解码前需要处理输入AVPacket中各时间参数,将输入容器中的时间基转换为1/framerate时间基;视频编码后再处理输出AVPacket中各时间参数,将1/framerate时间基转换为输出容器中的时间基...音频解码前需要处理输入AVPacket中各时间参数,将输入容器中的时间基转换为1/sample_rate时间基;音频编码后再处理输出AVPacket中各时间参数,将1/sample_rate时间基转换为输出容器中的时间基

    3.5K10

    小白音频测试之Python对音频进行频谱分析

    一般音乐CD的采样率是44100Hz,所以视频编码中的音频采样率保持在这个级别就完全足够了,通常视频转换器也将这个采样率作为默认设置。 2.帧率(Frame rate):是用于测量显示帧数的量度。...3.码率(Bit Rate):指视频或音频文件在单位时间内使用的数据流量,该参数的单位通常是Kbps,也就是千比特每秒。通常2000kbps~3000kbps就已经足以将画质效果表现到极致了。...背景知识: (一个AAC原始帧包含一段时间内1024个采样及相关数据) 分析: 1.AAC 音频帧的播放时间=一个AAC帧对应的采样样本的个数/采样频率(单位为s) 一帧 1024个 sample。...str_data中,这是一个string类型的数据 str_data = wf.readframes(nframes) wf.close() 将音频波形数据转换为数组 # A new 1-D array...wave_data.shape = -1,2 将数组转置 wave_data = wave_data.T #time 也是一个数组,与wave_data[0]或wave_data[1]配对形成系列点坐标

    5.7K52

    USB总线-Linux内核USB3.0设备控制器之dwc3 gadget驱动初始化过程分析(五)

    struct usb_ep通常不直接使用,而是嵌入到一个大的数据结构中使用。在dwc3控制器中,嵌入到了struct dwc3_ep结构体中。...dwc3控制器设备驱动会将dwc3_request和dwc3_trb进行绑定,并设置TRB中各个位,然后将TRB的DMA地址写到控制器中,最后使能传输,控制器会自动的将TRB传输到端点中,然后将TRB指定缓冲区中的数据发送出去...,支持一个微帧传输多个数据包,该区域就是设置一个微帧传输几包数据,在准备第一个trb时需要设置,USB2.0 125微妙内最多可以传输3包数据 R_W TRBSTS TRB Status 传输状态,由硬件设置...,将TRB组织成链表形式,控制器会将这些TRB看成一个事务进行传输,最后一个TRB需要将CHN置成0, LST置成1 R TRBCTL TRB Control 指出TRB的类型1-Control-Data...设备端ep_queue一包数据时都需要带一个预期发送数据的微帧号, 如果微帧号过期了, 即当前微帧号大于给定的微帧号, 则会发生Missed Isoc事件, 同时将该数据包丢弃) R IOC Interrupt

    6.5K31

    EmguCV 常用函数功能说明「建议收藏」

    所有数组必须具有相同的数据类型和相同的大小(或ROI大小)。 累加,将整个图像或其所选区域添加到累加器和。 累积产品,将2张图像或其选定区域的产品添加到累加器中。...= 0,其中alpha调节更新速度(累加器对于先前帧的多少速度).. 自适应阈值,将灰度图像转换为二进制图像。每个像素单独计算的阈值。...CvArrToMat,将CvMat,IplImage或CvMatND转换为Mat .. cvCheckArr,检查每个数组元素既不是NaN也不是无穷大。...该功能读取位于pt1和pt2之间的所有图像点,包括终点,并将它们存储到缓冲区中。 cvSet2D,将新值分配给数组的特定元素。 cvSetData,将用户数据分配给数组头。...Randu(IInputOutputArray,MCvScalar,MCvScalar),生成单个均匀分布的随机数或随机数的数组。 RawDataToBitmap,将原始数据转换为位图。

    3.6K20

    PHP核心编程知识点

    print_r printf 三、变量 变量的组成:变量名和变量值组成,变量名引用变量值 内存的组成:堆区、栈区、用户代码区,全局数据区(变量区、常量区、静态变量区),变量名在栈区,变量值是在变量区中...含义 魔术常量:该常量的值由其所在的位置决定 五、数据类型 1.数据类型简介 程序 = 数据结构 + 算法 PHP的数据类型:三大类,8小类 2.进制及进制转换 其他进制转换为十进制:按权展开!...二转八:三并一 二、十六之间的互转 十六转二:一拆四 二转十六:四并一 八、十六之间的互转 八转十六:先一拆三,再四并一 十六转八:先一拆四,再三并一 3.整型数据 表示形式 十进制 八进制,以...,替换成什么字符,从哪个字符串替换); 11.时间函数 time:返回一个时间戳 date:将一个时间戳格式化为指定的格式(常见的时间占位符:Y-m-d H:i:s) strtotime microtime...、利用强制类型转换符创建 数组访问:中括号语法 数组分类: 键值之间的关系:索引数组和关联数组 数组的维度:一维和多维数组 foreach遍历 基本语法 几个细节 数组的指针:reset,next、current

    3.4K51

    FFmpeg简易播放器的实现-视频播放

    如下内容引用自“雷霄骅,视音频编解码技术零基础学习方法”: 解协议 将流媒体协议的数据,解析为标准的相应的封装格式数据。...例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。 解封装 将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。...封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。...支持,则不必进行图像转换 // 这里为了编码简便,统一转换为SDL支持的格式AV_PIX_FMT_YUV420P==>SDL_PIXELFORMAT_IYUV sws_ctx = sws_getContext...创建SDL_Texture // 一个SDL_Texture对应一帧YUV数据,同SDL 1.x中的SDL_Overlay // 此处第2个参数使用的是SDL中的像素格式,对比参考注释A7

    4.5K40

    rtsp 获取视频流 java_浏览器无插件播放rtsp视频流 java后台 + js + html

    传输数据流的长连接,网上很多都是node.js开发的http转websocket,借鉴采用java + netty 进行了这一步的转换。这个地方一定要搞清楚http和WS的区别,为啥要转WS。...本文的核心就是http转ws+ js页面帧展示. 原理: ffmpeg可以将rtsp视频流转换成很多格式的帧数据。...将这些数据以http长连接的方式推送给后台,后台转换为浏览器可以播放的WS数据流,浏览器通过js解析ws协议提取出每一帧后展示。...: a. ffmpeg转tcp协议不会丢帧,但是不可避免的存在延时大,udp在网络不好的情况下出现很多马赛克。...参考github进行微调,从大往小了调整,找到最合适的值。 4.

    3.8K10
    领券