ReplayKit2 采集音视频回调格式

一、音频

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ReplayKit2 RPSampleBufferTypeAudioApp sampleBuffer = CMSampleBuffer 0x100500c50 retainCount: 1 allocator: 0x1b5f57538
    invalid = NO
    dataReady = YES
    makeDataReadyCallback = 0x0
    makeDataReadyRefcon = 0x0
    formatDescription = <CMAudioFormatDescription 0x1c4113a70 [0x1b5f57538]> {
    mediaType:'soun'
    mediaSubType:'lpcm'
    mediaSpecific: {
        ASBD: {
            mSampleRate: 44100.000000
            mFormatID: 'lpcm'
            mFormatFlags: 0xe
            mBytesPerPacket: 2
            mFramesPerPacket: 1
            mBytesPerFrame: 2
            mChannelsPerFrame: 1
            mBitsPerChannel: 16     }
        cookie: {(null)}
        ACL: {(null)}
        FormatList Array: {(null)}
    }
    extensions: {(null)}
}
    sbufToTrackReadiness = 0x0
    numSamples = 22062
    sampleTimingArray[1] = {
        {PTS = {2803233600791/1000000000 = 2803.234}, DTS = {INVALID}, duration = {1/44100 = 0.000}},
    }
    dataBuffer = 0x1c41139e0

  

二、视频:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ReplayKit2 RPSampleBufferTypeVideo sampleBuffer = CMSampleBuffer 0x104b049a0 retainCount: 1 allocator: 0x1b5f57538
    invalid = NO
    dataReady = YES
    makeDataReadyCallback = 0x0
    makeDataReadyRefcon = 0x0
    buffer-level attachments:
        RPSampleBufferVideoOrientation    = 1
    formatDescription = <CMVideoFormatDescription 0x1c0042eb0 [0x1b5f57538]> {
    mediaType:'vide'
    mediaSubType:'420f'
    mediaSpecific: {
        codecType: '420f'       dimensions: 886 x 1918
    }
    extensions: {<CFBasicHash 0x1c006db00 [0x1b5f57538]>{type = immutable dict, count = 2,
entries =>
    0 : <CFString 0x1ae9fbbe8 [0x1b5f57538]>{contents = "Version"} = <CFNumber 0xb000000000000022 [0x1b5f57538]>{value = +2, type = kCFNumberSInt32Type}
    2 : <CFString 0x1ae9fbb68 [0x1b5f57538]>{contents = "CVBytesPerRow"} = <CFNumber 0xb000000000005442 [0x1b5f57538]>{value = +1348, type = kCFNumberSInt32Type}
}
}
}
    sbufToTrackReadiness = 0x0
    numSamples = 1
    sampleTimingArray[1] = {
        {PTS = {2967140404416/1000000000 = 2967.140}, DTS = {INVALID}, duration = {INVALID}},
    }
    imageB

 

三、测试设备

  iPhoneX + 11.x系统

posted @   兜兜有糖的博客  阅读(1148)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示