
如前所述,如果我们想在几秒钟内播放短视频,可以从域名解析、套接字缓冲和探测缓冲三个方面入手,对短视频小视频源代码进行优化. 然后我们将完成其余方面的工作
1、 探头清单
耗时原因:

探针缓冲与检测过程相同. 一开始,播放短视频的人不知道视频是什么格式的. 它需要根据它支持的格式找到一个分数,然后根据分数给出相应的格式,类似于Android sniff. 因此,如果ffmpeg有更多支持的格式,探测列表越长,所需的时间也就越长. 对于短视频,CP的内容格式基本确定: MP4+H264+AAC. 因此,没有必要检测多种格式
解决方案:
对于未使用的格式,可以在ffmpeg build config中删除它们,只保留所需的格式,如MP4,以最小化探测列表. 具体来说就是修改程序中的相关函数

2、 播放器缓冲区
耗时原因:
对于非直播播放机,通常在播放机中设计缓冲区,以满足播放流畅性和音视频同步的需要,特别是在网络不稳定或性能较差的情况下. 但是,可以根据帧数设置缓冲区如何制作短视频,1-2秒或3-5秒. 如果整个播放过程是几十分钟,甚至是几个小时的体验,在播放开始时缓冲几秒钟是可以接受的,但对于短视频来说,这种体验并不好

解决方案:
策略优化,保证视频第一时间输出,缓冲机制到播放后的第一屏,当然要照顾好音频,在保证音视频同步的同时,还有一些取舍要做. 例如如何制作短视频,Android的nuplayer框架设计受到这些因素的限制,而且开始广播的速度远远达不到这些因素. 后来,nuplayer升级到exoplayer后,效果还是不好. 我们需要找一个制造商做二次开发
3、 分辨率+图像质量+I帧位置

耗时原因+解决方案:
这个决议并不难理解. 如果视频文件的分辨率很高,一帧的数据量会很大,相应的传输时间也会更长. 因此,选择合适的分辨率进行录制或转码也要考虑到播放器的负载. 移动终端约720p,用于个人展示和内容聚合的短视频分辨率可以更低
图像质量越高越好. 对于720个不同场景之间不能快速切换的视频,3M和5m的比特率几乎没有差别. 对于短视频,需要在图像质量和传输之间找到一个平衡点
I帧位置是指视频I帧在文件开头的位置. 为了防止屏幕闪烁的问题,播放器在播放或搜索时通常会找到第一个I帧进行解码. 一般来说,每秒有25-30帧的视频文件. 显然,我在第一帧中帧,在最后一帧中对第二次广播有影响. 因此,根据实际情况,在产品服务链中选择合适的分辨率和图像质量. 将I帧放在文件开头的第一帧中
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-279421-1.html
晚上你直接去他家就可以了