前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试官常问的音视频技术点!

面试官常问的音视频技术点!

作者头像
用户6280468
发布2023-08-31 10:38:50
6130
发布2023-08-31 10:38:50
举报
文章被收录于专栏:txp玩Linux

一、前言:

今天继续给大家分享最近星球上的星友音视频面试题目,希望对大家有用!

下面是具体面试问的问题:

二、面试题目:

1、请说下H264的两种形态:

  • Annex B格式:这种格式常用于网络流媒体传输,比方说RTP、RTSP、RTMP等等。他的格式特点如下:它拥有StartCode(00 00 00 01/00 00 01)作为分隔符,StartCode的作用是防止竞争,当数据中出现00 00 01 ,则会修改成00 00 031。更重要的是,对于AnnexB的分隔符不代表NALU长度。
  • AVCC格式:这种格式的分隔符能表示NALU长度,并且不定长。这种方式也是防止竞争字节,这种格式的文件多用于MP4文件。

2、在直播场景中如何做到解码端秒开

直播秒开是开发音视频项目中一个很重要的功能,因为如果用户在播放网络视频流黑屏的时间过长则会严重影响用户体验。一般我们有两种方式解决:

  • 推流端缩短GOP长度:在推流端设置GOPSIZE,一般来说GOP的长度会影响播放端的黑屏时间。GOP长度越长,找到I帧的时间就会变长,若解码端长时间没找到I帧,播放器就会处于长时间黑屏。若出现黑屏的时间过长,则可以考虑缩短GOPSIZE的长度。比方说,黑屏的GOPSIZE长度是60,则可以缩短GOPSIZE为5,此时解码端则会快速找到I帧,播放器基本上会秒开。
  • 设置服务端GOP缓存:这个方法跟第一个方法有点相似,也是设置GOP的属性。但这个方法是在服务端设置GOP属性,在服务端可以通过设置GOP-Cache缓存让播放器总是缓存着前一个I帧,这样的话播放器每次刷新都可以快速播放视频。

3、SPS和PPS的区别:

SPS和PPS都是H264最开始的两个识别帧,若解码器没有识别出SPS和PPS则会无法正常解码出视频。但是这两个识别帧,也有很多不同。

  • SPS:中文全称是序列参数集,它主要包含了一连续编码序列的参数,比方说标识符seq_parameter_set_id、帧数、POC约束、参考帧数目、解码图像尺寸等信息。
  • PPS:中文全称是图像参数集,它主要包含的是一个序列中的某几张图像。这其中包括pic_parameter_set_id、可选的seq_parameter_set_id、片组数目、初始量化参数等。

4、FLV格式为何常用在直播流媒体协议:

FLV的特点是封装后的音视频文件大小相对比较小、封装规范相对比较简单,所以FLV格式非常适用于网络传输。尤其在RTMP网络流媒体传输中,FLV占据着统治地位。一般FLV格式如下图:

FLV封装格式一般由FLV Header和FLV Body组成。这里面FLV Body是由一对(Previous Tag Size字段 + Tag)组成。Previous Tag Size字段排在Tag之前,占用4个字节。Tag通常分为三种类型:

  • 脚本数据类型
  • 音频数据类型
  • 视频数据类型。

5、TCP或者UDP传输视频码流的时候出现了粘包的情况,要如何解决:

所谓的视频流粘包,就是指一段视频码流无法识别出一帧完整的视频帧。我的回答是通过FFMPEG的抽帧api av_read_frame把每一个码流中的每一帧H264/H265码流获取到,并且通过内部的标识符00 00 00 01进行分割,最终分割成sps+pps+i作为一帧完整的视频帧。这样就可以解决TCP、UDP粘包的情况。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 txp玩Linux 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言:
  • 二、面试题目:
    • 1、请说下H264的两种形态:
      • 2、在直播场景中如何做到解码端秒开
        • 3、SPS和PPS的区别:
          • 4、FLV格式为何常用在直播流媒体协议:
            • 5、TCP或者UDP传输视频码流的时候出现了粘包的情况,要如何解决:
            相关产品与服务
            云直播
            云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档