发布于 2015-08-11 23:40:40
我检查了库,看起来拥有记录函数的唯一方法是创建自定义输出。
有Split类,它允许将缓冲区推送到多个输出。因此,您需要使用文件保存函数创建新的IOuput实现,并使用该Split类将其添加到流中。
更新#1
我发现库中有一个文件输出示例(VCSimpleSession.mm文件):
{
m_h264Packetizer = std::make_shared<videocore::rtmp::H264Packetizer>(ctsOffset);
m_aacPacketizer = std::make_shared<videocore::rtmp::AACPacketizer>(self.audioSampleRate, self.audioChannelCount, ctsOffset);
m_h264Split->setOutput(m_h264Packetizer);
m_aacSplit->setOutput(m_aacPacketizer);
}
{
/*m_muxer = std::make_shared<videocore::Apple::MP4Multiplexer>();
videocore::Apple::MP4SessionParameters_t parms(0.) ;
std::string file = [[[self applicationDocumentsDirectory] stringByAppendingString:@"/output.mp4"] UTF8String];
parms.setData(file, self.fps, self.videoSize.width, self.videoSize.height);
m_muxer->setSessionParameters(parms);
m_aacSplit->setOutput(m_muxer);
m_h264Split->setOutput(m_muxer);*/
}
m_h264Packetizer->setOutput(m_outputSession);
m_aacPacketizer->setOutput(m_outputSession);试着取消评论并检查。
https://stackoverflow.com/questions/31953637
复制相似问题