字节跳动音视频面试一面挂,转拿腾讯音视频 offer
一、面试官: 视频为什么需要压缩
心理分析:视频压缩在音视频领域是一个恒久不变的话题,有压缩也就意味有解压操作,我们把压
缩称为编码 解压成为解码。它们是成对出现的,做音视频最难的就在音视频编解码。如何提高音
视频播放效率,在不牺牲视频质量下 做高度压缩就显得格外重要了。面试官想问的问题并不是压
缩了什么,而是编码中对视频帧做了什么
求职者:需要求职者对视频编码有所了解,接下来我们从帧内压缩,与帧间压缩讲起
- 未经压缩的数字视频的数据量巨大 下图一分钟的视频量 差不多需要68G
- 存储困难:一张32G的U盘只能存储几秒钟的未压缩数字视频。
- 传输困难 : 1兆的带宽传输一秒的视频需要大约10分钟。
二、面试官: 封装格式是什么
心理分析:很多人对音视频的概念停留在 苍老师的小电影上,只能理解他是一个视频文件。面试官考
的对视频文件下的封装格式,封装格式里面的内容有没有了解
求职者:首先需要从封装格式概念讲起,慢慢深入到封装格式基础下,然后散发解封装与封装过程
(1)封装格式(也叫容器)就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就
是说仅仅是一个外壳,可以把它当成一个放视频轨和音频轨的文件夹也可以。
(2)通俗点说视频轨相当于饭,而音频轨相当于菜,封装格式就是一个碗,或者一个锅,用来盛放饭菜的容
器。
(3)封装格式和专利是有关系的,关系到推出封装格式的公司的盈利。
(4)有了封装格式,才能把字幕,配音,音频和视频组合起来。
(5)常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件都指的是一种封装格式。
举例MKV格式的封装:
三、面试官: 一个视频文件是否可以完成倒放(或者你们的倒放如何实现)
心理分析:面试官考的是 是否有经历过音视频剪辑相关的经验,需要从求职者中得到的答案,不是
“能”或者“不能” 而是分析为什么不能倒放,
不能倒放的本质原因,对I B P有有没有了解
求职者:倒放在视频剪辑中 是必备功能,按常理来看,倒放肯定是能够实现的,但是问题就出现在
这里,求职者如果对视频编码原理不理解的话,对视频倒放肯定打不上来的,求职者需要首先答对
“一个视频不能实现倒放,两个文件可以" 这个入手, 再从编解码入手 讲解为什么不能实现倒放
答案
第一种方式:
- 从第一个gop然后顺序解码
- 将一个解码的gop的yuv写入文件中
- 将第二个gop顺序解码yuv写入文件
- 第三个gop序列,以此类推....
然后倒序读入内存中,进行编码即可.
缺点:如果文件过大,不能使用此方法,因为yuv文件较大,一分钟yuv就有1-2G左右,有可能撑爆sdcard.
第二种方式
- 全部遍历视频一遍,获取一共有多少gop序列
- 跳到(seek)到最后一个gop的I帧,然后把这个gop解码的yuv存放在sdcard
- 再逆序读出这个解码的gop的yuv,进行编码,这样最后一个gop就变成了第一帧的gop;
- 接下来seek到倒数第一个gop的I帧,依次类推,把每个gop解码、然后编码
其实在音视频岗位面试中,问到得远远不止上面的相关问题,上述知识举例,还有更多内容可以面试题可以参考:
1.什么是I帧 P帧 B帧?
2.简述H264视频编码流程?
3.视频能倒放吗,倒放如何实现?
4.硬编码与软编码有什么区别?
5.你对sps 和pps的理解?
6.如何从一段残缺H264数据 解析出画面?
7.讲讲MediaCodec硬编码底层解码机制?
8.音频播放过快,视频慢,如何选择丢帧
9.码率和分辨率都会影响视频的清晰度
10.生产者和消费者的关系
11.sps和pps的区别
12.……
对一些没有学习过、了解过音视频这块知识点的朋友,仿佛是在看天书一般,在这里请大家不要着急,在这为大家准备了《Android 音视频开发入门到精通》的学习笔记:https://qr18.cn/Ei3VPD
,帮助大家快速提升。
来源:juejin.cn/post/7208092574162157626