美文网首页
iOS中265与264编解码播放问题记录

iOS中265与264编解码播放问题记录

作者: 六两 | 来源:发表于2021-11-22 18:17 被阅读0次

项目不能上传见谅⚠️

---找hvc1在ffmpeg设置的同学直接跳到结尾---

项目描述:流数据经过sdk传输音视频到终端,解析播放保存等。
出现问题:H265视频保存后无法播放。

265与264的基础知识不再赘述,网上相关资料很多。
可以根据以下几种直接搜,超级详细:
1.FFmpeg
2.软解 硬解
3.I帧 P帧 B帧 (本文没有B帧)
4.vps sps pps

-->>相关知识点很多需要时间整理<<--

开始介绍处理时的区别,这方面网上的文章较少(也可能是我不会找)。

硬解部分(软解现在很少了就不再说明了)

⚠️取帧⚠️
265(HEVC)的 vps sps pps I帧

 我这里流数据为uint8_t
 (data[4] & 0x7E)>>1 == 19 //IDR帧关键帧
 (data[4] & 0x7E)>>1 == 33 //SPS
 (data[4] & 0x7E)>>1 == 34 //PPS
 (data[4] & 0x7E)>>1 == 32 //VPS

264(AVC)(没有vps⚠️)的 sps pps I帧

 4-8位为nal单元类型 
 (data[4] & 0x1F == 0x05 //IDR帧关键帧
 (data[4] & 0x1F == 0x07 //SPS
 (data[4] & 0x1F == 0x08 //PPS

保存视频阶段

如果按照正常的265流程,会出现播放视频无画面有声音的情况
原因 :
hev1 or hvc1是两种codec tag,表示mov或者其他容器中hevc流的不同打包方式
苹果不支持265的hev1 (这种是国际标准的,苹果不用,就是玩?)

解决路线:

全局宏
#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))

ffmpeg3.0以后:

搞AVStream的AVCodecParameters的tag,在avformat_write_header前将AVCodecParameters的tag设置为MKTAG('h', 'v', 'c', '1')

ffmpeg3.0以前:

(3.0以前是没有AVCodecParameters的)
AVStream的AVCodecContext中的codec_tag如下设置,大概这样👋

_videoStream->codec->codec_tag = MKTAG('h', 'v', 'c', '1');

解决过程中有助力的工具!
强大的播放器VLC,长这样👇

WeChat97ca375b9bcec118a58dd76209a5d678.png

视频参数解析Invisor,长这样👇

WeChat7fb5a8436bc4c65ddc3f352c8cd7416b.png
WeChate571b50130270fe2ea5dbfeb7d2b89cf.png

希望能帮到处于和我一样困境的你mua,下课。

相关文章

  • iOS中265与264编解码播放问题记录

    项目不能上传见谅⚠️ ---找hvc1在ffmpeg设置的同学直接跳到结尾--- 项目描述:流数据经过sdk传输音...

  • H264 编解码

    H264编解码(一) —— 基本概览H264编解码(二) —— ios中的H264硬编解码的实现H264编解码(三...

  • FFmpeg学习之开发Mac播放器(六):FFmpeg与Mac编

    Mac和iOS支持使用VideoToolBox硬件编解码H264和H265的视频流,这次使用FFmpeg解封装使用...

  • 硬件编码相关知识(H264,H265)

    硬件编码相关知识(H264,H265) 阅读人群:研究硬件编码器应用于iOS开发中,从0研究关于硬件编解码,码流中...

  • avformat_open_input 阻塞 and 设置超时时

    在编写能够适配 h264 和 h265 编码的MP4播放器时遇到的问题.(PS如果iOS系统播放器能够满足这一点我...

  • 知识点(二)

    编解码1.H264/H265区别:https://blog.csdn.net/fanyun_01/article/...

  • iOS视频编解码_1

    我们将分成以下几点讨论视频编解码的情况 1、收到H.264格式的视频数据并在应用中播放 2、收到H.264视频数据...

  • H264系列十二 H.264概述

    参考【H.264/AVC视频编解码技术详解】一. 视频信息与压缩编码【H.264/AVC视频编解码技术详解】二. ...

  • H264系列十二 H.264概述

    参考 【H.264/AVC视频编解码技术详解】一. 视频信息与压缩编码 【H.264/AVC视频编解码技术详解】二...

  • 硬件编码

    iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述 http://mp.we...

网友评论

      本文标题:iOS中265与264编解码播放问题记录

      本文链接:https://www.haomeiwen.com/subject/xrgdtrtx.html