gpt4 book ai didi

iphone - IframeExtractor 不使用 rtsp 输出声音

转载 作者:行者123 更新时间:2023-12-04 23:30:37 24 4
gpt4 key购买 nike

我使用来自 git mooncatventure 的 IframeExtractor ,它对 .mov 文件的播放效果很好。
但是当我尝试读取 rtsp 流时,我听不到任何声音。

这是 rtsp 流中的 FFMEG 转储:

Metadata:
title : unknown
comment : unknown
Duration: N/A, start: 49435.000589, bitrate: 258 kb/s
Program 3223
No Program
Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1(fra): Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 142 kb/s
Stream #0:2(fra): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
Stream #0:3(qad): Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, mono, fltp, 47 kb/s
Stream #0:4(qaa): Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 68 kb/s

这是本地 .mov 文件中有效的转储:
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2010-01-17 21:52:33
model : iPhone 3GS
model-eng : iPhone 3GS
date : 2010-01-17T16:52:33-0500
date-eng : 2010-01-17T16:52:33-0500
encoder : 3.1.2
encoder-eng : 3.1.2
make : Apple
make-eng : Apple
Duration: 00:00:03.25, start: 0.000000, bitrate: 3836 kb/s
Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 640x480, 3695 kb/s, 30.02 fps, 30 tbr, 600 tbn, 1200 tbc
Metadata:
rotate : 90
creation_time : 2010-01-17 21:52:33
handler_name : Core Media Data Handler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s
Metadata:
creation_time : 2010-01-17 21:52:33
handler_name : Core Media Data Handler

管理声音的音频类包含一个编解码器检测器,它表示为两个输入找到了编解码器 CODEC_ID_AAC:
audioStreamBasicDesc_.mFormatFlags = 0;
switch (_audioCodecContext->codec_id) {
case CODEC_ID_MP3:
audioStreamBasicDesc_.mFormatID = kAudioFormatMPEGLayer3;
break;
case CODEC_ID_AAC:
audioStreamBasicDesc_.mFormatID = kAudioFormatMPEG4AAC;
audioStreamBasicDesc_.mFormatFlags = kMPEG4Object_AAC_Main;
NSLog(@"audio format aac %s (%d) is supported", _audioCodecContext->codec_name, _audioCodecContext->codec_id);
break;
}

我看到数据进入缓冲区,但我什么也没听到。可能是 audioStreamBasicDesc_ 设置错误,但我找不到。

它可能不是同一个 AAC 编解码器吗?

有人遇到过同样的问题吗?

欢迎任何帮助,我从几天以来就一直在解决这个问题。

编辑:
我发现了一个以前没有的错误,我不知道如何解决它。如果我将 audioStreamBasicDesc.mFramesPerPacket 更改为 0 或除以 2,则错误消息消失。
AudioConverterNew returned 'fmt?'
Prime failed ('fmt?'); will stop (72000/0 frames)

最佳答案

您可以尝试在此处强制使用任意大的缓冲区大小,例如 480000

status = AudioQueueAllocateBufferWithPacketDescriptions(audioQueue_, 
audioStreamBasicDesc_.mSampleRate * kAudioBufferSeconds / 8,
_audioCodecContext->sample_rate * kAudioBufferSeconds /
_audioCodecContext->frame_size + 1,
&audioQueueBuffer_[i]);

关于iphone - IframeExtractor 不使用 rtsp 输出声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com