• 西格玛
    2021-11-22
    stride比较难理解,小白问几个stride的问题: 1.stride为什么是16字节对齐? 2.为什么stride是宽度16字节对齐,高度却不限制? 3.读取图片的时候,如果就把stride当成宽度(实际宽度小于stride),还会花屏吗?(stride大于宽度的部分我当成纯色)

    作者回复: 1、一般芯片读取效率在16字节对齐时最高,芯片能一次性读取16字节的数据,16字节对齐之后可以充分利用芯片的性能,速度更快。当然并不是stride一定是16字节对齐的,有的也32字节对齐,甚至64字节对齐。 2、图像存储在内存中一般是个一维数组,一般我们需要一行一行像素读取,不太会一列一列读取。因此高度方向上一般不对齐。 3、不会花屏,但是会有多余的不是图像的部分,一般不会留着这个padding部分。

    共 4 条评论
    19
  • 贾献华
    2021-11-23
    码率可以是固定的,也可以是变化的。 如果是固定码率, 1. 编码后的码率小于固定码率,填充数据 2. 编码后的码率大于固定码率,丢弃细节数据,降低码率

    作者回复: 是的。回答的很对。一般来说除非要求绝对固定,不然不会填充数据。毕竟浪费带宽。你的回答考虑地很全面。

    
    17
  • 麋鹿少年
    2021-11-24
    大佬,之后会讲讲webrtc的码率自适应吗

    作者回复: 会详细介绍。

    共 2 条评论
    4
  • _zeta
    2021-11-22
    老师讲的太好了,声网服务这么好还是因为有大神坐镇的。 刚开始做音视频不久,有个问题想请教,我们在iOS平台自采集后用 VideoToolBox 进行H.264编码,写入SEI时,我们自研的播放器是可以解析SEI的,但问题是用ffplay拉流会报 [h264 @ 0x14786b800] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [h264 @ 0x14786be00] nal_unit_type: 6(SEI), nal_ref_idc: 0B f=0/0 [h264 @ 0x14786be00] no frame! [h264 @ 0x1478f4e00] nal_unit_type: 5(IDR), nal_ref_idc: 1B f=0/0 这种警告,目前没有解决这个问题的头绪,能否帮着解答一下。

    作者回复: 看起来是在没有IDR之前就出了非IDR帧,导致第一帧解码不了。

    共 5 条评论
    4
  • DK
    2021-11-23
    码率可以是固定的,但是更倾向于使用变化的 首先我们储存视频时并不是以图片的形式进行存储,而是以图片中不同色值的变化作为一个存储的依据,在不同的时间点内,运动色值的轨迹变化量可能不同,所以最终的结果导致了不同,考虑的最优算法 如果不能确定色值轨迹的变化量,而是固定的存储某个位置的像素点变化,码率就是固定的

    作者回复: 一般来说: 1、对清晰度要求高,可以选择变化的码率。 2、RTC场景,一般使用固定码率。

    
    3
  • 小飞同学
    2021-11-23
    1.图像由像素组成,有多少像素取决于分辨率,对原始图像来说分辨率和清晰度成正相关。图像以一定帧率组成视频,视频以一定的码率进行传输。 2.基本概念 位深:一幅图像中包含的二进制位的数量 位深越大,能够表示的颜色值就越多。RGB通道。1位深,只能表示黑白; 跨距:图像存储时内存中每行像素所占用的空间。为快速读取一行像素,进行内存对齐。 帧率:视频在单位时间内图像的数量 码率:视频在单位时间内的数据量的大小

    作者回复: 2、位深是一个像素点中某一个通道(比如R通道、G通道、B通道)的像素值的二进制位的数量。

    共 2 条评论
    3
  • plh
    2021-11-30
    小白用户问个问题,码率是怎么计算出来的。

    作者回复: 对于播放器来说,实时码率一般是一秒钟多少帧,从编码好的码流中读取这个多帧数据,就知道总共多少字节大小了,码率就是总字节数除以一秒。对于实时发送的视频流一般你可以知道你一秒钟发送了多少字节的,那码率也就知道了。对于编码器来说它一秒钟输出多少肯定也知道,很容易算码率。对于普通人看一个视频文件的码率。可以直接用文件总大小除以总时长,但是一般视频文件里面还有音频数据,所以得到的是视频和音频的总码率,通常音频的码率相比视频小很多,可以近似认为是视频的码率。

    
    2
  • Geek_00444b
    2021-11-23
    码率可以变化也可以恒定,码率如果是固定的,可以通过一个缓冲区来暂时存储码率,从而使输出的码率恒定,但是加了缓冲区会增加时延

    作者回复: 这个思路有点像webrtc中的paced_sender的思路。但是一般来说我们还是会使用提高QP和降低QP的方式来实现码率基本恒定。提高QP画面会变模糊一些,会有可能出现马赛克,但是码率会降低。降低QP画面会变清晰。码率也会提高。

    共 3 条评论
    2
  • weekend
    2021-12-10
    同一个原始视频,在同一个压缩算法和压缩速度前提下,码率越大,清晰度就越大,失真越小。 这样理解对吗?

    作者回复: 是的

    
    1
  • 文进
    2021-12-06
    老师,这样理解是否对。 如果每个画面的像素是固定的,相同像素,所占用空间大小一致,相同时间下,按理数据量大小/单位时间,得出码率应该相同。但是即使像素相同,码率通常却是变化,是因为这里的数据量应该是转码后的数据量吧?每帧哪怕像素相同,经过不同的压缩算法,每秒得到数据量大小不同。甚至不同画面之间,相同算法,得到的数据也是不一样的,导致码率发生变化。

    作者回复: 是的,没错

    
    1