百度音视频面试——二面

百度视频云音视频高级研发工程师——面经

1、先自我介绍

本想着上次的自我介绍很失败,这次得好好准备,所以就计划详详细细的介绍一下,结果还没说5分钟,就被打断了,极有可能我说的跟面试过想知道的——不搭边!  然后面试官直接说:我问你一些基础题吧。 ̄□ ̄||

2、基础题

1、指针和引用的区别?https://blog.csdn.net/l477918269/article/details/90233908

2、联合体union和结构体struct的区别?https://www.cnblogs.com/nktblog/p/4027107.html

union公用一块内存,大小为所有成员的最小公倍数。 struct 为每个对象单独开辟空间,且内存对齐。

3、H264内部是如何编码的?

4、有几种媒体封装格式?

TS、AVI、MKV、TP、MOV、M2T,mp4, flv, 等等吧。我看电影少,对音视频格式认识的少,但是该背还得背。

5、MP4的内部结构?

内容好多呀,自行搜索,然后去背诵吧。我是没有背诵下来,但是重点的结构还是要说出来的。

6、编解码流程?

采集到的流,需要进行解码,格式转换,再编码,再封装等,一系列流程。

7、计算机分几个存储空间?

c++在程序执行的时候将内存分为四个区:

1.代码区

存放函数体的二进制代码,由操作系统管理

包括你写的那些注释都在这

2.全局区

存放全局变量,静态变量,常量

常量:字符串常量

3.栈区

存放函数参数值和局部变量,由编译器自动分配和释放

4.堆区

由程序员分配和释放,如果程序员不释放,那么程序结束时将由操作系统回收

那么为什么要分为四个区呢?

因为不同区域存放的数据,具有不同生命周期,这大大地使我们编程更加灵活

 

8、webRTC的通信过程?

peer-a, 与 peer-b 如何建立通信的。这个还是可以对答如流的。

 

9、SDP的内容,共5部分。

10、opencv 用过哪些功能?

因为曾经做过这个开发,所以被问到了。

  1. opencv,做图像识别,主要是:标记图像,然后对图像进行滤波、二值化、边缘提取,根据标定,计算出像素与实际尺寸的距离,做出试件随着拉伸,变形的图。
  2. opencv,对写有汉字的图像,进行处理:扭曲、倾斜、波浪、添加噪点等,制作汉字图像库,用于TensorFlow训练识别汉字。
  3. opencv,处理视频:添加水印、剪裁、缩放、融合等。成品链接

11、OpenGL 是不是熟悉?

这个不熟悉,还没有接触过。可能视频、图像,都离不开OpenGL吧。好多音视频或图像开发的工作,都会提到熟悉OpenGL这个要求。

 

上机笔试

输入10个学生的学号和分数(或者直接插入也行),插入到链表中,然后按照分数,从小到大排序,并输出。

想了想,本来想着,先一个单链表,然后排序,写着写着程序,突然意识到,我可以插入的时候,就让它有序呀。机智!

cin可以连续从键盘读取想要的数据,以空格、tab或换行作为分隔符;

getline(cin, param)不会将结束符或者换行符残留在输入缓冲区中, 读取一行数据,这一行中,可以有空格, 要包含头文件string.h;

gets(),包含头文件stdio.h

// 直接写一个文件里了。
#include <iostream>
using namespace std;

struct student
{
	int num;
	int score;
};

struct Node
{
	student stu;
	Node *pNext;
	Node(const int num, const int score)
	{
		stu.num = num;
		stu.score = score;
		pNext = nullptr;
	}
};

class stuList
{
private:
	Node *m_head;
public:
	stuList(){ m_head = nullptr; }
	~stuList(){ deleteList(); }

	void insert(const int num, const int score)
	{
		Node *n = new Node(num, score);
		if (m_head == nullptr)
		{
			m_head = n;
		}
		else
		{
			Node *temp = m_head;
			if (temp->stu.score >= score )
			{
				n->pNext = m_head;
				m_head = n;
			}
			else
			{
				Node *pre = temp;
				while (temp && temp->stu.score < score)
				{
					pre = temp;
					temp = temp->pNext;
				}
				if (!temp)
				{
					pre->pNext = n;
				}
				else if (temp->stu.score >= score)
				{
					pre->pNext = n;
					n->pNext = temp;
				}
			}
		}
	}

	void print()
	{
		Node *temp = m_head;
		while(temp)
		{
			cout << "num : " << temp->stu.num 
				 << " , score : "<< temp->stu.score << endl;
			temp = temp->pNext;
		}
	}
        void deleteList()
	{
		Node *temp = m_head;
		while(temp)
		{
			m_head = m_head->pNext;
			delete temp;
			temp = m_head;
		}
		m_head = nullptr;
	}
};

int main()
{
	int num, score;
	int n = 10;
	stuList s;
	while(n > 0)
	{
		cout << "请输入学号和分数 : " << endl;
		cin >> num;
		cin >> score;
		s.insert(num, score);
		--n;
	}	
// 	s.insert(1, 50);
// 	s.insert(2, 40);
// 	s.insert(3, 60);
// 	s.insert(4, 70);

 	s.print();

	system("pause");
	return 0;
}

 

 

满满当当的面试结束了。非常开心,因为最后的上机写完了,哈哈哈哈~

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Android音视频面试中,可能会被问到以下几个方面的问题。首先,面试官可能会询问你在Android开发方面的经验和项目经历。你可以谈论你参与过的音视频开发项目,以及你在项目中承担的角色和贡献。\[1\] 其次,面试官可能会问到与网络通信相关的知识,比如TCP的三次握手和四次挥手,TCP的核心机制(如滑动窗口、快速重传机制、拥塞控制等),以及HTTP和HTTPS的区别。你可以准备这些知识点,并且可以参考相关的学习资源来加深理解。\[3\] 此外,面试官可能会问到性能优化相关的问题。你可以准备一些常见的性能优化方案,例如内存优化、UI渲染优化、网络请求优化等。如果你在音视频开发方面有相关经验,还可以准备一些关于音视频开发的问题,如编码原理、常见的音视频格式、FFmpeg的使用、OpenGL与EGL的关系以及Android如何与NDK进行通信和调用等。\[3\] 综上所述,为了在Android音视频面试中取得好的表现,建议你准备好自己的项目经历和相关知识,并且多做一些实践和深入学习,以提高自己在音视频开发领域的技术水平和竞争力。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [android远程控制!看懂这些帮你轻松解决就业问题!这原因我服了](https://blog.csdn.net/fjfdhduuffududu/article/details/114291859)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v8^insert_chatgpt"}} ] [.reference_item] - *2* [精选58道——Android 音视频面试题](https://blog.csdn.net/maniuT/article/details/129840765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v8^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值