客户端音视频录制及上传方案(todo)

1,431 阅读1分钟

概述

本文记录在播放端/采集端(视频编辑工具)录制音视频及上传过程中遇到的一些问题,以及优化点。

技术点及原理

  • 基本实现方式——播放端分为屏幕录制和媒体内容录制两种情况。屏幕录制是指业务层捕获屏幕(或渲染器)数据,叠加声卡收到的音频数据,编码封装完成。底层录制是指将解封装后、解码前的音视频数据直接转封装为指定的视频格式。这俩的区别是,一个用的是解码后的数据,一个用的是解码前的数据,是否要重新做一次编码。采集端目前想到的就是直接用编码后的数据。

基本流程

问题

  • 录制的起始位置:类似seek,必须得是上层指定的录制时间点附近的一个视频I帧开始。
  • 音画同步:如果是解码后从渲染器和声卡拿到的数据,那音画同步是比较简单的,但如果是解码前的数据呢
  • 录制异常中断,存储的文件无法播放:比如设备异常断电,crash等情况,如果录制文件存储为mp4,那么moov box中数据缺失,残缺文件中保存了一个个mdat box,moov可能存在或不存在,可以使用之前录制记录中的采样率、帧率等解码信息尝试读packet,解码再重新编码。(默认残缺文件是音画同步的)。

参考