前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网友对嵌入式音视频开发的疑惑和解答!

网友对嵌入式音视频开发的疑惑和解答!

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

前言:

大家好,由于问音视频学习路线的朋友实在是太多了,所以本期视频,我邀请了一个做音视频的前辈来给大家做一个分享,他的项目经验比较丰富,做过很多音视频企业开发实战项目!!

我之前的文章里面有给大家分享过学习路线,大家也可以结合这篇文章参考一下:

一、为什么要学习音视频技术?

最为现实的一点,音视频这个赛道给自己的工资回报是非常不错的,这里大家可以自行去招聘网站上看看。

还有一个就是行业的需求,凡是市场的产品,只要涉及到视频或者音频,那么就需要这块的技术!

还有一个原因这快的技术更新相对来说,没有那么快!

二、关于音视频我们要学习什么知识点?这里分为几大部分,视频裸流部分,音频裸流部分,音视频封装技术,流媒体网络协议技术。

视频:

  • 视频原始数据YUV/RGB格式
  • 视频的分辨率
  • 视频的帧率
  • 视频的压缩编码技术H264/H265(HEVC)
  • 视频的码率
  • 视频的码率控制模式(CBR(固定码率控制)/VBR(动态码率控制))
  • 视频的关键帧间隔(GOPSIZE)
  • 视频解码技术

音频:

  • 音频原始数据PCM
  • 音频采样率、采样通道、采样通道
  • 音频的压缩编码格式AAC(其实音频编码格式有好多种,但是AAC是最常见的)
  • 音频码率
  • 音频解码技术

音视频封装技术

  • FLV封装
  • mpegts封装
  • mp4封装
  • ts封装

推流协议部分:

  • RTP协议
  • RTCP协议
  • RTMP协议
  • RTSP协议
  • SRT协议

三、如何选择嵌入式板子进行音视频开发?

目前音视频编解码技术越来越多运用在嵌入式平台,所以选择一款功能强大的嵌入式音视频板子对项目来说是事半功倍。那有哪些板子是比较适合做音视频开发的呢?这里推荐几款:

3.1.海思开发板

海思开发板是国内当之无愧的音视频开发的皇冠,其优秀的CPU处理能力在国内也是首屈一指。海思平台支持多种音视频开发技术,如:H264/H265硬件编解码技术、支持多路ISP图像处理、支持HDR10高动态技术标准等、最高支持8K分辨率等,支持音频采集、编码等技术,这些功能都使得开发者更加开发者在音视频开发上面游刃有余。但海思开发板目前处于供货短缺状态,所以价格会比较贵。

3.2.瑞芯微开发板

由于海思开发板的价格,所以国内现在大部分开发都从海思转到瑞芯微(像我们现在星球的开发就是在瑞芯微的平台上进行音视频的开发)。目前瑞芯微是我们国内首选的音视频开发平台,其强大的音视频开发功能使得国内的音视频开发者对它非常看好。目前瑞芯微主打的两款芯片一款是RV1126、另外一款是RK3399(也可以是RK3568)。RV1126的强大功能在于提供了一系列丰富的API进行音视频数据的采集、编码、裁剪,并可以在底层驱动来外接其他SENSOR接口,如MIPI摄像头、HDMI接口等等。而RK3399的优势就在于他拥有强大的CPU和GPU,可以进行多路码流的解码(RK3399主要优势在于解码),并同时进行业务的开发。

所以综上所述,这两款芯片是目前最受欢迎的音视频开发芯片。

一般掌握了一款芯片的多媒体平台开发,去上手其他的芯片方案开发,也是非常快上手的,只是不同的芯片平台接口有差异而已,或者一些细节有差异!

四、个人如何在工作中学习音视频技术:

关于学习音视频技术这块,其实每个人都有自己的一些学习的方法。但是就我个人而言,最重要的一点就是要养成看源码(最好是FFMPEG源代码)的好习惯。我在这家公司第一年的时候,分配的任务就是要我去研究如何用海思的芯片采集音视频数据并进行服务器的推流(当时是RTMP服务器),当时推流这块的资料在网上几乎没有(我当时做到的水平只是利用海思的API采集到H264/H265码流)。后来我在网上看到有人说FFMPEG能够很好的处理音视频码流,并且提供了很好接口进行推流。我后面也在网络CSDN上面也找寻了许多关于FFMPEG推流的代码,但我发现他们都是基于文件读取的方式(包括读取摄像头/dev/video0节点)进行推流,并没有根据通过读取任意数据流进行推流的代码。后面,我就通过查询源代码的方法找到压缩数据是如何赋值的,并把RV1126读 取到的编码数据赋值到FFMPEG里面并进行推流。

从上面这个例子就可以看出来,阅读源代码是学习音视频技术开发的最重要方法。我们许多不懂的地方都可以在FFMPEG源代码里面找到答案,所以我希望在后续学习中,大家能够多多看源代码进行学习。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 一、为什么要学习音视频技术?
  • 二、关于音视频我们要学习什么知识点?这里分为几大部分,视频裸流部分,音频裸流部分,音视频封装技术,流媒体网络协议技术。
    • 视频:
      • 音频:
        • 音视频封装技术
          • 推流协议部分:
          • 三、如何选择嵌入式板子进行音视频开发?
            • 3.1.海思开发板
              • 3.2.瑞芯微开发板
              • 四、个人如何在工作中学习音视频技术:
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档