实习工作记录(2018.11-2019.2)

win11配置Mask DINO小白踩坑记录 前情提要:需要复现Mask DINO,但是实验室没有Linux的电脑,在Windows上复现的时候遇到了,然后看博客说在Windows上配置很麻烦,建议去Linux,但是虚拟机没办法用GPU,想到了三个方法:1、用WSL2来运行;2、在Windows上解决这个困难;3、装双系统。我首先试了方法1,碰到了一开始的问题,而且也比较麻烦,所以干脆进行了2,网上一些方法写的比较简略,但是我实际运行过程中碰到了很多问题,所以记录一下。 阅读详情

实习工作记录

  • Android下ffmpeg+x264+fdk-aac软解码demo

功能描述:Android下获取摄像头1080P的YV12格式视频编码为h264格式视频保存,同时获取PCM格式音频数据编码为AAC格式音频保存
重点:控制编码时间不超过33ms
编码时间优化过程:
首先在native层使用ffmpeg的编码器接口调用x264库
关键的参数设置为

pCodecCtx->thread_count = 4 ;//设置开启线程数(测试手机的cpu核数)
av_dict_set(&param, "preset", "ultrafast", 0);  //有ultrafast、superfast、veryfast、fast、、medium、slow、slower、veryslow的选项,影响编码速度和质量
av_dict_set(&param, "tune", "zerolatency", 0); //有film 、animation、grain、stillimage、psnr、ssim、fastdecode、zerolatency的选项,从左到右编码复杂度依次递减,质量依次递减,实时编码必须设置zerolatency,表示零延迟输出当前编码帧

但是在这个参数设置下,编码时间为80ms一帧,并会逐渐增长,达不到要求
分析编码处理时间包括:

  1. 将YV21数据转换成YUV420P的时间
  2. ffmpeg与X264编码器之间的参数传递和函数调用
  3. x264编码器编码的时间

数据格式在1080P下的转换时间在10毫秒左右,为了排除ffmpeg的影响,我对x264库相同设置下的编码时间进行了测试,单独编译了x264库,配置了AS,在native层重写了一个调用264库的类,封装好给java层调用,编码速度得到提升,但还是逐渐变慢,分析应该是由于编码对于CPU的需求比较高,但编码线程并没有得到很好的调度,所以在java层采用android.os.Process类中设置优先级的函数来对编码线程进行调度优化,结果就是,直接使用x264工程加上调度优化可以满足需求,也就是说x264编码器在设置正确的情况下的速度是可以满足要求的。

接下来研究为什么在使用ffmpeg调用x264库时同样的设置起不了作用,对log和源码进行分析之后发现,虽然设置了帧并行编码线程数,但是并没有起作用,也就是说并行编码没起作用,这是由于ffmpeg的参数设置并不是与x264的参数完全一一对应,要加上以下设置(表明并行类型是帧并行),结果就与直接应用x264无差异了

pCodecCtx->thread_type = FF_THREAD_FRAME;

需要注意的问题:
1 编译x264和fdk-aac库的时候可能会出现找不到库的问题,这是由于路径设置可能存在问题
2 fdk-aac库在使用ffmpeg调用时,可能会报错,这是使用了根据id寻找编码器的函数造成的,由于fdk-aac的id与ffmpeg内置aac格式的音频编码器的id相同,所以应使用编码器name寻找(avcodec_find_encoder_by_name(“libfdk_aac”))

  • 研究如何给ffmpeg添加自定义的编码器
    在这里插入图片描述
  • 编写Android下MediaCodec硬解码类
    描述:实现三个接口,init、encode、release,encode实现YUV420P到h264同步编码,为了熟悉Android硬解码功能
  • 优化首帧时间
    描述:线上代码存在首帧硬编码时间过长问题(从开始获取图像至返回编码后的首帧时间400-500ms)
    首帧过慢原因:
    线上的硬编码代码逻辑是,每次获取到相机返回的图像后调用encodevideofrombuffer()进行此帧的编码并返回编码后的帧
    核心函数encodevideofrombuffer()中的逻辑是获取编码器的的可用buffer将YUV数据写入,并调用dequeueOutputBuffer( bufferInfo, TIMEOUT_USEC)取出编码后的帧

有两部分原因导致首帧时间长:
1 初始化硬解码器的时机不对,应该尽量将初始化代码提前

2 TIMEOUT_USEC设置过小,编码未完成导致超时返回,只能放弃此次取数据,等到下次相机返回图像时再取出此帧,也由于android的硬编码器规定要先输出一个配置帧,所以一般要等到第二、三帧时才能获取到首帧解码后的数据,并且帧率越小,帧间间隔越大,拿到首帧的时间越长

优化过程:
1、修改了init函数,将初始化时间提前到执行oncreate()时
2、修改了TIMEOUT_USEC与逻辑,使得可在第一次调用encodevideofrombuffer()时就返回解码后的首帧
优化结果:
从获取到相机图像到获取到解码后的首帧的时间缩短至40ms左右

华为图像处理算法实习生面试记录 华为2019年寒假实习生面试 岗位:算法工程师实习生(图像处理方向) 面试方式:一面电话面,二面视频面(异地原因) 面试 一面(技术面): 1、从头到尾把简历问了一遍,深剖,重点是自己干的东西 2、算法考试: 给定一个Array,再给定一个sum,用三种方法找出里面相加之和为sum的所有组合 C1:若里面数据是无序的,有没有更好的办法 C2:里面是有序的,算下算法的时间复杂度 ... 阅读详情

相关推荐

实习日志

考研完到杭州迈睿机器人公司实习了一个月,感觉收获不少,学到了很多工程相关的经验,之前对大型工程没有什么概念,有无从下手的感觉,现在经过一个月的实习,大致对实际的开发流程有了了解。 这一个月的实习中,我基本上了解了MRTA的全部内容,并重写了一个利用最小费用最大流原理的算法取代了原本的匈牙利算法,测试小车数大于30辆时可以缩短时间10倍。然后基本了解了MRPP中的路径规划,学会了A*算法,交通管理...

SeasonJoe的博客 7564

实习第一周记录

在技术和心理上对一周的实习做个总结,其实更像是随笔,想到哪写哪,只是给未来的自己留点纪念吧 简单描述情况,分析出几点问题

awesomels的博客 4478

「前端」2019.10 猿辅导实习生一面

面试官是个小姐姐,本来有些紧张的,后来突然好了。 视频面试,时间大概50分钟的样子。 自我介绍 这个就不用说了,基本操作。 基础知识 1. 从URL输入到浏览器,到页面显示在浏览器中,这个过程你能说一下吗? 老生常谈,实习生面应该不会问的太细,所以简单说了一下流程: URL经过DNS解析成IP地址: 首先到浏览器缓存当中查找是否有缓存,没有则下一步 到操作系统缓存当中去查找是否有缓存,没有则...

Jack's Blog 3285

实习记录

1、枚举类实现接口的用法 以前在学校接触过枚举类,只会调用它,也不太了解它的实际用处。 //接口声明 public interface PeopleInterface { String getJob();//获取职业 } //程序员枚举类 public enum Programmer implements PeopleInterface{ Java_engineer(1,...

MaxwellQAQ的博客 2254

记录一下自己找“python爬虫工程师实习生”岗位的经历(2018年9月11号)

今天是2018年9月11号,是我实习的第二天,记录一下找工作的历程,本来准备昨晚写的,但是第一天来实习,有点累了,就早点睡了,早上醒了,洗漱一下就来写这篇文章了。 鄙人的水平很低,而且还是一名大四的学生,所以投的都是python爬虫工程师实习生的岗位,投简历都是在网上投的,自己用的有拉勾,实习僧,大街,前程无忧,智联招聘…找实习的话,还是比较推荐实习僧这个网站,其他的也可以尝试的投一投,陆陆续续...

jixn的博客 1万+

软件工程实习记录

本科软件工程实习记录,包括具体实习过程和实习方式,可以直接用于实习记录编写的修改。

实训工作记录·

今天我完成了按学号查询学生FindStudentByIdFrame,按班级查询学生FindStudentByClassFrame,按系部查询学生FindStudentByDepartmentFrame,按姓名查询学生FindStudentByNameFrame,按学号删除记录DelteStudentByIdFrame,按班级删除学生DeleteStudentsByClassFrame,按系部删除学...

trqqwx的博客 1570

实习日记__7天的实习日记

7天的实习日记,讲述了这7天在公司实习的全过程,以及在有关实习的内容与实习总结。7天的实习日记,讲述了这7天在公司实习的全过程,以及在有关实习的内容与实习总结。

实习工作学习记录 scrapy

从8月27日起到现在,已经实习工作一个月了,这个月学到了很多技术知识,特此记录。 ----------------------------------------------------------------------------------- 1、添加日志监控程序 在setting.py中添加如下代码段,意思是打开日志记录,文件命名以当前日期(如20180930.log)为格式,日志级...

RonnyChan的博客 694

Plant simulation、Flexsim、Automod、Emulate3D、VisuaComponent仿真软件对比

E3D在行业内以展示效果好,入门阶段易学易用人机界面友好,电控仿真连接方便不需要借助其他第三方软件,E3D平台开放度较高用户DIY程度强,数据分析功能针对要评定对象的KPI的可根据项目或者使用者需求进行评定。3.支持导入导出多种格式的文件,比如dwg、dxf、fbx、obj、3ds、step、stp、iges、skp、stl、wrl、 bmp 等等。3.软件自带模型组件库程序代码开放,用户可以引用、修改、拷贝,按照自己的逻辑修改模型,或者创建模型并保存到组件库与别人共享。3. 支持导出布局图片。

qq_43342303的博客 3576

FFmpeg 部署与使用(含Docker部署)

ffmpeg 部署以及使用

weixin_38584583的博客 909

2019华为实习面经

2019华为实习面经 第一阶段——简历制作 一份好的简历至关重要,我在知乎上和各类博客上看了很多的简历制作的指导。我个人是使用的超级简历这个网站制作的简历。 简历模板简约大方,分类详细,制作起来比较简单。我个人不是很推荐五颜六色的简历,我觉得就经典的黑白色,分类清楚就行。 简历上需要包括的自己的姓名,联系方式,学校,专业,绩点,项目经历,实习经历,社团和活动经历,语言和技能等。 项目经历写的最好详...

川游的博客 7412

数字IC后端先进工艺设计实现之TSMC 12nm 6Track工艺数字IC后端实现重点难点盘点

如果你仅仅是跑个先进工艺的flow,不懂先进工艺在数字IC后端实现上的不同点,为何有这样的不同点,针对这些不同之处后端实现阶段如何考虑它们,那么你等于0经验!大家可以针对本文所列的要点进行复盘,如果这些都搞透彻了,你就可以大胆把T12 nm的A72和A55项目写到你的简历中。T12这个工艺也是支持Preferred和Non-prefered两个方向来完成routing的,但是它对它们的最小线宽和最小线间距提出了更严格的要求。所有各个子模块的形状,彼此之间的间距都是有严格的要求。为何要有P48这一层?

weixin_37584728的博客 8333

【2019实习】记录我的寒假找实习之路

把草稿箱里文章拿出来分享一下。 从2018.11中下旬开始准备在南京找个寒假实习,当时只考虑南京的算法实习生。 基本没有走春招实习,找的日常实习。 地平线机器人:智能驾驶算法实习生 一面(笔试+面试)、二面(技术面)、三面(类似HR面) 笔试主要是机器学习相关、深度学习相关、还有两道编程题。后来面试的时候又让我手写了一道链表反转的题,问了SVM的损失函数、softmax损失函数、K...

故沉的博客 1473

虚拟机扩容——非LVM分区

虚拟机扩容——非LVM分区

ytraister的博客 3905

Arduino程序设计(十四)舵机控制实验(SG90)

本文介绍SG90舵机控制原理及实验,主要内容有:1、介绍SG90舵机;2、舵机0°~180°来回转动;3、串口控制舵机转动固定角度。(1)舵机是一种位置(角度)伺服的驱动器。舵机只是一种通俗的叫法,其实质是一个伺服马达。在需要角度不断变化并可以保持的控制系统中应用广泛。如遥控机械人、飞机模型等。(2)舵机的转动角度为0~180°,其内部结构包括电机,控制电路和机械结构三部分。电机有三根线引出,分别接VCC、GNG和信号线。

Alice的博客 1万+

实习记录小程序|基于SSM的实习记录小程序设计与实现(源码+数据库+文档)

知识管理系统的开发全过程。通过分析企业对于知识管理系统的需求,创建了一个计算机管理知识管理系统的方案。文章介绍了知识管理系统的系统分析部分,包括可行性分析等本知识管理系统有管理员和用户两个角色。管理员功能有个人中心,用户管理,文章分类管理,文章信息管理,资料分类管理,资料下载管理,问答管理,论坛交流,留言板管理,系统管理等。因而具有一定的实用性。本站是一个B/S模式系统,采用Spring Boot框架作为后台开发技术,前端框架是VUE,MYSQL数据库设计开发,充分保证系统的稳定性。

伟庭的博客 4341

RHCA III之路---EX436-1

由于ha这门课有大量命令需要在3个节点上同步执行.如果执行history会出现前面数字,复制多行会有些麻烦.lab环境是nodea,nodeb,nodec 考试环境是node1,node2,node3。就可以快速将历史命令实现可多行复制,当然也可以用awk进行分割,个人喜好随意。技巧只能加快答题速度,对考试得分帮助不大。确认3个红框内容一致,且没报错即可。再执行一个histrory。3个node节点上运行。这样就能1次复制3行。

Q先生 1002

2018京东C++开发工程师实习面经

本人大三软件工程专业,从上个月开始刷书准备面试,这是这么久以来第一次面s试,有点小紧张小兴奋。昨天就从深圳过来广州,住在同学宿舍,昨晚探了路踩踩点。早上9点45分到广州希尔顿酒店,在4楼签到后等到10点28分收到短信,通知说去6009号面试官处面试,看到短信后以为是在6楼,屁颠屁颠跑过去,结果6楼是健身房。。。跑回4楼问了工作人员,原来6009是在4楼。。。过去之后被面试官问为什么那么久才到,尴尬...

木风feng的博客 3944

Idea插件Plugins无法联网下载 解决方法(终极版必解决!)

插件联网的Bug疑难杂症,网络上不一样的解决方式以及独特的彩蛋!包解决

码农研究僧的博客 5513

基于STM32设计的遥控灭火消防小车_296

随着城市化进程的加速和火灾发生频率的增加,传统的消防方式在应对初期火灾时存在反应慢、效率低等问题。为了提高火灾响应速度和灭火效率,本设计开发了一款基于STM32单片机的遥控灭火消防小车。该小车配备了烟雾检测、温湿度监测、火源定位、灭火操作等功能,能够通过蓝牙和WIFI实现远程控制与实时视频传输。设计采用了MQ2烟雾传感器、SHT30温湿度传感器、火光传感器和ESP32摄像头模块等硬件设备。系统不仅能够自动检测和定位火源,还可以手动调整灭火器对准位置,进行干粉灭火。此外,蜂鸣器用于火源报警,确保操作人员及时得

721

2018春季实习生面经

不多说,直接进入正题,我从1月12号开始面试,期间面试了4家公司,滴滴,今日头条,百度,网易有道。其中今日头条面试两次,第二次才通过。网易有道也过了。其他两家没过,后面我会具体提供面试题型(面试完基本我能想起来的,我都记录在手机上了)。最后面我会写写找实习的过程以及内推网站。 滴滴: 2018/1/12 平台技术部门 不限语言 (实习期间用go,go基本是后端服务器主流语言了) 我比较熟悉...

cuixuange的博客 2981

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

回顾 2018,展望 2019

1. 概述 今天是 2019 年第一天,趁着元旦 3 天假期时间,对即将过去的这一年做个总结回顾,看下这一年得到了什么,失去了什么,并对来年做个新的规划,看下需要采取哪些措施提升自己。 2. 2018 年总结 2.1 工作 2.1.1 更换工作: 今天 4 月份更换到目前所在的公司,一家具有发展前景的初创企业。 2.1.2 聚焦业务: 从入职到现在做了大概 3 个项目,基本熟悉了当前岗位的业务流程...

wohu1104的专栏 2895

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Windows11+VS2019+Trimesh2 2.16 安装配置记录

Windows11+VS2019+Trimesh2 2.16 安装配置记录。

WoooChi的博客 1561

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Win10 + CUDA 11.2 + VS2019 安装及环境配置指南

Win10 + CUDA 11.2 + VS2019 安装及环境配置指南 【下载地址】Win10CUDA11.2VS2019安装及环境配置指南分享 Win10 + CUDA 11.2 + VS2019 安装及环境配置指南本资源文件详细记录了在Windows 10系统下,安装Visual Studio 2019和CUDA ...

gitblog_06642的博客 699

2018年11月26日到2019年4月26日工作汇总

2018年11月26日到2019年4月26日工作汇总 2018年11月26日-2017年11月30日 上午:各种协议的填写,已经有关表单的培训 下午:对公司目前做的项目的培训,以及明确我当前的工作 部署服务器环境,一些必要软件的安装,学习svn,nginx 适航培训 上午:产品培训,下午:交换机及质量,规章制度培训,参观展厅 学习项目代码 2018年12月3日-2018年12月7日 下划线怎么实现...

Yanfengting的博客 1337
上一篇: NDK开发-Ubuntu下利用NDK编译ffmpeg+x264+fdk-aac
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值