2024年ZLMediaKit - webrtc录像_zlmediakit 录像,2024年最新25岁成功入职阿里P7的小哥哥告诉你

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

[MediaServer] std::function<void (mediakit::Parser &, mediakit::HttpResponseInvokerImp &, bool &, toolkit::SockInfo &)>::operator()(mediakit::Parser &, mediakit::HttpResponseInvokerImp &, bool &, toolkit::SockInfo &) const std_function.h:688
[MediaServer] toolkit::EventDispatcher::emitEvent<mediakit::Parser &, mediakit::HttpResponseInvokerImp &, bool &, toolkit::SockInfo &> NoticeCenter.h:57
[MediaServer] toolkit::NoticeCenter::emitEvent<mediakit::Parser &, mediakit::HttpResponseInvokerImp &, bool &, toolkit::SockInfo &> NoticeCenter.h:102
[MediaServer] mediakit::HttpSession::emitHttpEvent HttpSession.cpp:665
[MediaServer] mediakit::HttpSession::::operator()(const char *, size_t) const HttpSession.cpp:700
[MediaServer] std::_Function_handler<bool (const char *, long unsigned int), >::_M_invoke(const std::_Any_data &, const char *&&, unsigned long &&) std_function.h:285
[MediaServer] std::function<bool (const char *, unsigned long)>::operator()(const char *, unsigned long) const std_function.h:688
[MediaServer] mediakit::HttpSession::onRecvContent HttpSession.cpp:90
[MediaServer] mediakit::HttpRequestSplitter::input HttpRequestSplitter.cpp:95
[MediaServer] mediakit::HttpSession::onRecv HttpSession.cpp:98
[MediaServer] toolkit::TcpSessionWithSSLmediakit::HttpSession::public_onRecv TcpSession.h:43
[MediaServer] <lambda#2>::operator()(const std::shared_ptrtoolkit::Buffer &) const TcpSession.h:29
[MediaServer] std::_Function_handler<void (const std::shared_ptrtoolkit::Buffer &), <lambda#2> >::_M_invoke(const std::_Any_data &, const std::shared_ptrtoolkit::Buffer &) std_function.h:300
[MediaServer] std::function<void (const std::shared_ptrtoolkit::Buffer &)>::operator()(const std::shared_ptrtoolkit::Buffer &) const std_function.h:688
[MediaServer] toolkit::SSL_Box::flushReadBio SSLBox.cpp:430
[MediaServer] toolkit::SSL_Box::flush SSLBox.cpp:451
[MediaServer] toolkit::SSL_Box::onRecv SSLBox.cpp:335
[MediaServer] toolkit::TcpSessionWithSSLmediakit::HttpSession::onRecv TcpSession.h:38
[MediaServer] toolkit::TcpServer::::operator()(const toolkit::Buffer::Ptr &, sockaddr *, int) const TcpServer.cpp:122
[MediaServer] std::_Function_handler<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int), >::_M_invoke(const std::_Any_data &, const std::shared_ptrtoolkit::Buffer &, sockaddr *&&, int &&) std_function.h:300
[MediaServer] std::function<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int)>::operator()(const std::shared_ptrtoolkit::Buffer &, sockaddr , int) const std_function.h:688
[MediaServer] toolkit::Socket::onRead Socket.cpp:318
[MediaServer] toolkit::Socket::::operator()(int) const Socket.cpp:259
[MediaServer] std::_Function_handler<void (int), >::_M_invoke(const std::_Any_data &, int &&) std_function.h:300
[MediaServer] std::function<void (int)>::operator()(int) const std_function.h:688
[MediaServer] toolkit::EventPoller::runLoop EventPoller.cpp:304
[MediaServer] std::__invoke_impl<void, void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:73
[MediaServer] std::__invoke<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:95
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul> thread:244
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::operator() thread:251
[MediaServer] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller *, bool, bool> > >::_M_run thread:195
[libstdc++.so.6] 0x00007ffff7b1cde4
[libpthread.so.0] start_thread 0x00007ffff7c31609
[libc.so.6] clone 0x00007ffff780a263


### http接口请求录制


* ::::operator()(void) WebApi.cpp:1254
* mediakit::MediaSource::setupRecord MediaSource.cpp:259
* mediakit::MediaSourceEventInterceptor::setupRecord MediaSource.cpp:744
* mediakit::MultiMediaSourceMuxer::setupRecord MultiMediaSourceMuxer.cpp:220
* mediakit::makeRecorder MultiMediaSourceMuxer.cpp:41
* mediakit::Recorder::createRecorder Recorder.cpp:76
* mediakit::MP4Recorder::MP4Recorder MP4Recorder.cpp:24



[MediaServer] mediakit::MP4Recorder::MP4Recorder MP4Recorder.cpp:24
[MediaServer] __gnu_cxx::new_allocatormediakit::MP4Recorder::construct<mediakit::MP4Recorder, std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> new_allocator.h:146
[MediaServer] std::allocator_traits<std::allocatormediakit::MP4Recorder >::construct<mediakit::MP4Recorder, std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> alloc_traits.h:483
[MediaServer] std::_Sp_counted_ptr_inplace<mediakit::MP4Recorder, std::allocatormediakit::MP4Recorder, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> shared_ptr_base.h:548
[MediaServer] std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<mediakit::MP4Recorder, std::allocatormediakit::MP4Recorder, std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> shared_ptr_base.h:679
[MediaServer] std::__shared_ptr<mediakit::MP4Recorder, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocatormediakit::MP4Recorder, std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> shared_ptr_base.h:1344
[MediaServer] std::shared_ptrmediakit::MP4Recorder::shared_ptr<std::allocatormediakit::MP4Recorder, std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> shared_ptr.h:359
[MediaServer] std::allocate_shared<mediakit::MP4Recorder, std::allocatormediakit::MP4Recorder, std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> shared_ptr.h:702
[MediaServer] std::make_shared<mediakit::MP4Recorder, std::string &, const std::string &, const std::string &, const std::string &, unsigned long &> shared_ptr.h:718
[MediaServer] mediakit::Recorder::createRecorder Recorder.cpp:76
[MediaServer] mediakit::makeRecorder MultiMediaSourceMuxer.cpp:41
[MediaServer] mediakit::MultiMediaSourceMuxer::setupRecord MultiMediaSourceMuxer.cpp:220
[MediaServer] mediakit::MediaSourceEventInterceptor::setupRecord MediaSource.cpp:744
[MediaServer] mediakit::MediaSource::setupRecord MediaSource.cpp:259
[MediaServer] ::::operator()(void) WebApi.cpp:1254
[MediaServer] std::_Function_handler<void (), :: >::_M_invoke(const std::_Any_data &) std_function.h:300
[MediaServer] std::function<void ()>::operator()() const std_function.h:688
[MediaServer] toolkit::TaskCancelableImp<void ()>::operator()() const TaskExecutor.h:111
[MediaServer] <lambda#1>::operator()(const std::shared_ptr<toolkit::TaskCancelableImp<void ()> > &) const EventPoller.cpp:237
[MediaServer] toolkit::List<std::shared_ptr<toolkit::TaskCancelableImp<void ()> > >::for_each<<lambda#1> >(<lambda#1> &&) List.h:203
[MediaServer] toolkit::EventPoller::onPipeEvent EventPoller.cpp:235
[MediaServer] toolkit::EventPoller::::operator()(int) const EventPoller.cpp:67
[MediaServer] std::_Function_handler<void (int), >::_M_invoke(const std::_Any_data &, int &&) std_function.h:300
[MediaServer] std::function<void (int)>::operator()(int) const std_function.h:688
[MediaServer] toolkit::EventPoller::runLoop EventPoller.cpp:304
[MediaServer] std::__invoke_impl<void, void (toolkit::EventPoller:😗)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:73
[MediaServer] std::__invoke<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:95
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul> thread:244
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::operator() thread:251
[MediaServer] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller *, bool, bool> > >::_M_run thread:195
[libstdc++.so.6] 0x00007ffff7b1cde4
[libpthread.so.0] start_thread 0x00007ffff7c31609
[libc.so.6] clone 0x00007ffff780a263


## addTrack



[MediaServer] mediakit::MP4Recorder::addTrack MP4Recorder.cpp:127
[MediaServer] mediakit::MultiMediaSourceMuxer::onTrackReady MultiMediaSourceMuxer.cpp:341
[MediaServer] mediakit::MediaSink::::operator()(void) const MediaSink.cpp:36
[MediaServer] std::_Function_handler<void (), >::_M_invoke(const std::_Any_data &) std_function.h:300
[MediaServer] std::function<void ()>::operator()() const std_function.h:688
[MediaServer] mediakit::MediaSink::checkTrackIfReady MediaSink.cpp:91
[MediaServer] mediakit::MediaSink::inputFrame MediaSink.cpp:80
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::H264Track::inputFrame_l H264.cpp:191
[MediaServer] mediakit::H264Track::::operator()(const char *, size_t, size_t) const H264.cpp:160
[MediaServer] std::_Function_handler<void (const char *, long unsigned int, long unsigned int), >::_M_invoke(const std::_Any_data &, const char *&&, unsigned long &&, unsigned long &&) std_function.h:300
[MediaServer] std::function<void (const char *, unsigned long, unsigned long)>::operator()(const char *, unsigned long, unsigned long) const std_function.h:688
[MediaServer] mediakit::splitH264(const char *, unsigned long, unsigned long, const std::function<void (const char *, unsigned long, unsigned long)> &) H264.cpp:77
[MediaServer] mediakit::H264Track::inputFrame H264.cpp:158
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::H264RtpDecoder::outputFrame H264Rtp.cpp:189
[MediaServer] mediakit::H264RtpDecoder::singleFrame H264Rtp.cpp:81
[MediaServer] mediakit::H264RtpDecoder::unpackStapA H264Rtp.cpp:97
[MediaServer] mediakit::H264RtpDecoder::decodeRtp H264Rtp.cpp:157
[MediaServer] mediakit::H264RtpDecoder::inputRtp H264Rtp.cpp:50
[MediaServer] mediakit::RtspDemuxer::inputRtp RtspDemuxer.cpp:58
[MediaServer] mediakit::RtspMediaSourceImp::onWrite RtspMediaSourceImp.h:59
[MediaServer] WebRtcPusher::onRecvRtp WebRtcPusher.cpp:83
[MediaServer] WebRtcTransportImp::onSortedRtp WebRtcTransport.cpp:950
[MediaServer] WebRtcTransportImp::::operator()(mediakit::RtpPacket::Ptr) WebRtcTransport.cpp:830
[MediaServer] std::_Function_handler<void (std::shared_ptrmediakit::RtpPacket), >::_M_invoke(const std::_Any_data &, std::shared_ptrmediakit::RtpPacket &&) std_function.h:300
[MediaServer] std::function<void (std::shared_ptrmediakit::RtpPacket)>::operator()(std::shared_ptrmediakit::RtpPacket) const std_function.h:688
[MediaServer] mediakit::RtpTrackImp::onRtpSorted RtpReceiver.cpp:133
[MediaServer] mediakit::RtpTrack::::operator()(uint16_t, mediakit::RtpPacket::Ptr &) const RtpReceiver.cpp:18
[MediaServer] std::_Function_handler<void (short unsigned int, std::shared_ptrmediakit::RtpPacket &), >::_M_invoke(const std::_Any_data &, unsigned short &&, std::shared_ptrmediakit::RtpPacket &) std_function.h:300
[MediaServer] std::function<void (unsigned short, std::shared_ptrmediakit::RtpPacket &)>::operator()(unsigned short, std::shared_ptrmediakit::RtpPacket &) const std_function.h:688
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popIterator RtpReceiver.h:122
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popPacket RtpReceiver.h:91
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::tryPopPacket RtpReceiver.h:137
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::sortPacket RtpReceiver.h:76
[MediaServer] mediakit::RtpTrack::inputRtp RtpReceiver.cpp:106
[MediaServer] RtpChannel::inputRtp WebRtcTransport.cpp:635
[MediaServer] WrappedRtpTrack::inputRtp WebRtcTransport.cpp:884
[MediaServer] WebRtcTransportImp::onRtp WebRtcTransport.cpp:856
[MediaServer] WebRtcTransport::inputSockData WebRtcTransport.cpp:320
[MediaServer] WebRtcSession::onRecv WebRtcSession.cpp:70
[MediaServer] toolkit::emitSessionRecv UdpServer.cpp:134
[MediaServer] toolkit::UdpServer::::::operator()(const toolkit::Buffer::Ptr &, sockaddr *, int) const UdpServer.cpp:257
[MediaServer] std::_Function_handler<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int), :: >::_M_invoke(const std::_Any_data &, const std::shared_ptrtoolkit::Buffer &, sockaddr *&&, int &&) std_function.h:300
[MediaServer] std::function<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int)>::operator()(const std::shared_ptrtoolkit::Buffer &, sockaddr , int) const std_function.h:688
[MediaServer] toolkit::Socket::onRead Socket.cpp:318
[MediaServer] toolkit::Socket::::operator()(int) const Socket.cpp:259
[MediaServer] std::_Function_handler<void (int), >::_M_invoke(const std::_Any_data &, int &&) std_function.h:300
[MediaServer] std::function<void (int)>::operator()(int) const std_function.h:688
[MediaServer] toolkit::EventPoller::runLoop EventPoller.cpp:304
[MediaServer] std::__invoke_impl<void, void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:73
[MediaServer] std::__invoke<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:95
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul> thread:244
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::operator() thread:251
[MediaServer] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller *, bool, bool> > >::_M_run thread:195
[libstdc++.so.6] 0x00007ffff7b1cde4
[libpthread.so.0] start_thread 0x00007ffff7c31609
[libc.so.6] clone 0x00007ffff780a263


### http接口请求录制


* ::::operator()(void) WebApi.cpp:1254
* mediakit::MediaSource::setupRecord MediaSource.cpp:259
* mediakit::MediaSourceEventInterceptor::setupRecord MediaSource.cpp:744
* mediakit::MultiMediaSourceMuxer::setupRecord MultiMediaSourceMuxer.cpp:220
* mediakit::makeRecorder MultiMediaSourceMuxer.cpp:43
* mediakit::MP4Recorder::addTrack MP4Recorder.cpp:127



[MediaServer] mediakit::MP4Recorder::addTrack MP4Recorder.cpp:127
[MediaServer] mediakit::makeRecorder MultiMediaSourceMuxer.cpp:43
[MediaServer] mediakit::MultiMediaSourceMuxer::setupRecord MultiMediaSourceMuxer.cpp:220
[MediaServer] mediakit::MediaSourceEventInterceptor::setupRecord MediaSource.cpp:744
[MediaServer] mediakit::MediaSource::setupRecord MediaSource.cpp:259
[MediaServer] ::::operator()(void) WebApi.cpp:1254
[MediaServer] std::_Function_handler<void (), :: >::_M_invoke(const std::_Any_data &) std_function.h:300
[MediaServer] std::function<void ()>::operator()() const std_function.h:688
[MediaServer] toolkit::TaskCancelableImp<void ()>::operator()() const TaskExecutor.h:111
[MediaServer] <lambda#1>::operator()(const std::shared_ptr<toolkit::TaskCancelableImp<void ()> > &) const EventPoller.cpp:237
[MediaServer] toolkit::List<std::shared_ptr<toolkit::TaskCancelableImp<void ()> > >::for_each<<lambda#1> >(<lambda#1> &&) List.h:203
[MediaServer] toolkit::EventPoller::onPipeEvent EventPoller.cpp:235
[MediaServer] toolkit::EventPoller::::operator()(int) const EventPoller.cpp:67
[MediaServer] std::_Function_handler<void (int), >::_M_invoke(const std::_Any_data &, int &&) std_function.h:300
[MediaServer] std::function<void (int)>::operator()(int) const std_function.h:688
[MediaServer] toolkit::EventPoller::runLoop EventPoller.cpp:304
[MediaServer] std::__invoke_impl<void, void (toolkit::EventPoller:😗)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:73
[MediaServer] std::__invoke<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:95
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul> thread:244
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::operator() thread:251
[MediaServer] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller *, bool, bool> > >::_M_run thread:195
[libstdc++.so.6] 0x00007ffff7b1cde4
[libpthread.so.0] start_thread 0x00007ffff7c31609
[libc.so.6] clone 0x00007ffff780a263


## 帧



[MediaServer] mediakit::MP4Recorder::inputFrame MP4Recorder.cpp:101
[MediaServer] mediakit::MultiMediaSourceMuxer::onTrackFrame MultiMediaSourceMuxer.cpp:430
[MediaServer] mediakit::MediaSink::::operator()(const mediakit::Frame::Ptr &) const MediaSink.cpp:42
[MediaServer] std::_Function_handler<bool (const std::shared_ptrmediakit::Frame &), >::_M_invoke(const std::_Any_data &, const std::shared_ptrmediakit::Frame &) std_function.h:285
[MediaServer] std::function<bool (const std::shared_ptrmediakit::Frame &)>::operator()(const std::shared_ptrmediakit::Frame &) const std_function.h:688
[MediaServer] mediakit::FrameWriterInterfaceHelper::inputFrame Frame.h:293
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::MediaSink::inputFrame MediaSink.cpp:75
[MediaServer] mediakit::MediaSink::::operator()(const mediakit::Frame::Ptr &) const MediaSink.cpp:162
[MediaServer] toolkit::List<std::shared_ptrmediakit::Frame >::for_each< >(mediakit::MediaSink:: &&) List.h:203
[MediaServer] mediakit::MediaSink::emitAllTrackReady MediaSink.cpp:161
[MediaServer] mediakit::MediaSink::checkTrackIfReady MediaSink.cpp:113
[MediaServer] mediakit::MediaSink::inputFrame MediaSink.cpp:80
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::CommonRtpDecoder::inputRtp CommonRtp.cpp:44
[MediaServer] mediakit::RtspDemuxer::inputRtp RtspDemuxer.cpp:64
[MediaServer] mediakit::RtspMediaSourceImp::onWrite RtspMediaSourceImp.h:59
[MediaServer] WebRtcPusher::onRecvRtp WebRtcPusher.cpp:83
[MediaServer] WebRtcTransportImp::onSortedRtp WebRtcTransport.cpp:950
[MediaServer] WebRtcTransportImp::::operator()(mediakit::RtpPacket::Ptr) WebRtcTransport.cpp:830
[MediaServer] std::_Function_handler<void (std::shared_ptrmediakit::RtpPacket), >::_M_invoke(const std::_Any_data &, std::shared_ptrmediakit::RtpPacket &&) std_function.h:300
[MediaServer] std::function<void (std::shared_ptrmediakit::RtpPacket)>::operator()(std::shared_ptrmediakit::RtpPacket) const std_function.h:688
[MediaServer] mediakit::RtpTrackImp::onRtpSorted RtpReceiver.cpp:133
[MediaServer] mediakit::RtpTrack::::operator()(uint16_t, mediakit::RtpPacket::Ptr &) const RtpReceiver.cpp:18
[MediaServer] std::_Function_handler<void (short unsigned int, std::shared_ptrmediakit::RtpPacket &), >::_M_invoke(const std::_Any_data &, unsigned short &&, std::shared_ptrmediakit::RtpPacket &) std_function.h:300
[MediaServer] std::function<void (unsigned short, std::shared_ptrmediakit::RtpPacket &)>::operator()(unsigned short, std::shared_ptrmediakit::RtpPacket &) const std_function.h:688
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popIterator RtpReceiver.h:122
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popPacket RtpReceiver.h:91
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::tryPopPacket RtpReceiver.h:129
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::sortPacket RtpReceiver.h:76
[MediaServer] mediakit::RtpTrack::inputRtp RtpReceiver.cpp:106
[MediaServer] RtpChannel::inputRtp WebRtcTransport.cpp:635
[MediaServer] WrappedRtpTrack::inputRtp WebRtcTransport.cpp:884
[MediaServer] WebRtcTransportImp::onRtp WebRtcTransport.cpp:856
[MediaServer] WebRtcTransport::inputSockData WebRtcTransport.cpp:320
[MediaServer] WebRtcSession::onRecv WebRtcSession.cpp:70
[MediaServer] toolkit::emitSessionRecv UdpServer.cpp:134
[MediaServer] toolkit::UdpServer::::::operator()(const toolkit::Buffer::Ptr &, sockaddr *, int) const UdpServer.cpp:257
[MediaServer] std::_Function_handler<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int), :: >::_M_invoke(const std::_Any_data &, const std::shared_ptrtoolkit::Buffer &, sockaddr *&&, int &&) std_function.h:300
[MediaServer] std::function<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int)>::operator()(const std::shared_ptrtoolkit::Buffer &, sockaddr , int) const std_function.h:688
[MediaServer] toolkit::Socket::onRead Socket.cpp:318
[MediaServer] toolkit::Socket::::operator()(int) const Socket.cpp:259
[MediaServer] std::_Function_handler<void (int), >::_M_invoke(const std::_Any_data &, int &&) std_function.h:300
[MediaServer] std::function<void (int)>::operator()(int) const std_function.h:688
[MediaServer] toolkit::EventPoller::runLoop EventPoller.cpp:304
[MediaServer] std::__invoke_impl<void, void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:73
[MediaServer] std::__invoke<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:95
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul> thread:244
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::operator() thread:251
[MediaServer] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller *, bool, bool> > >::_M_run thread:195
[libstdc++.so.6] 0x00007ffff7b1cde4
[libpthread.so.0] start_thread 0x00007ffff7c31609
[libc.so.6] clone 0x00007ffff780a263


### http接口请求


* toolkit::EventPoller::**runLoop** EventPoller.cpp:304
* toolkit::Socket::::operator()(int) const Socket.cpp:259
* toolkit::Socket::**onRead** Socket.cpp:318
* toolkit::UdpServer::::::operator()(const toolkit::Buffer::Ptr &, sockaddr \*, int) const UdpServer.cpp:257
* toolkit::**emitSessionRecv** UdpServer.cpp:134
* WebRtcSession::**onRecv** WebRtcSession.cpp:70
* WebRtcTransport::**inputSockData** WebRtcTransport.cpp:320
* WebRtcTransportImp::**onRtp** WebRtcTransport.cpp:856
* WrappedRtpTrack::**inputRtp** WebRtcTransport.cpp:884
* RtpChannel::**inputRtp** WebRtcTransport.cpp:635
* mediakit::RtpTrack::**inputRtp** RtpReceiver.cpp:106
* mediakit::PacketSortorstd::shared\_ptr<mediakit::RtpPacket, unsigned short, 1024ul, 32ul>::**sortPacket** RtpReceiver.h:76
* mediakit::PacketSortorstd::shared\_ptr<mediakit::RtpPacket, unsigned short, 1024ul, 32ul>::**tryPopPacket** RtpReceiver.h:129
* mediakit::PacketSortorstd::shared\_ptr<mediakit::RtpPacket, unsigned short, 1024ul, 32ul>::**popPacket** RtpReceiver.h:91
* mediakit::PacketSortorstd::shared\_ptr<mediakit::RtpPacket, unsigned short, 1024ul, 32ul>::**popIterator** RtpReceiver.h:122
* mediakit::RtpTrack::::operator()(uint16\_t, mediakit::RtpPacket::Ptr &) const RtpReceiver.cpp:18
* mediakit::RtpTrackImp::**onRtpSorted** RtpReceiver.cpp:133
* WebRtcTransportImp::::operator()(mediakit::RtpPacket::Ptr) WebRtcTransport.cpp:830
* WebRtcTransportImp::**onSortedRtp** WebRtcTransport.cpp:950
* WebRtcPusher::**onRecvRtp** WebRtcPusher.cpp:83
* mediakit::RtspMediaSourceImp::**onWrite** RtspMediaSourceImp.h:59
* mediakit::RtspDemuxer::**inputRtp** RtspDemuxer.cpp:64
* mediakit::CommonRtpDecoder::inputRtp CommonRtp.cpp:44
* mediakit::FrameDispatcher::inputFrame Frame.h:331
* mediakit::FrameDispatcher::inputFrame Frame.h:331
* mediakit::FrameWriterInterfaceHelper::inputFrame Frame.h:293
* mediakit::MediaSink::::operator()(const mediakit::Frame::Ptr &) const MediaSink.cpp:42
* mediakit::MultiMediaSourceMuxer::onTrackFrame MultiMediaSourceMuxer.cpp:430
* mediakit::MP4Recorder::inputFrame MP4Recorder.cpp:101



[MediaServer] mediakit::MP4Recorder::inputFrame MP4Recorder.cpp:101
[MediaServer] mediakit::MultiMediaSourceMuxer::onTrackFrame MultiMediaSourceMuxer.cpp:430
[MediaServer] mediakit::MediaSink::::operator()(const mediakit::Frame::Ptr &) const MediaSink.cpp:42
[MediaServer] std::_Function_handler<bool (const std::shared_ptrmediakit::Frame &), >::_M_invoke(const std::_Any_data &, const std::shared_ptrmediakit::Frame &) std_function.h:285
[MediaServer] std::function<bool (const std::shared_ptrmediakit::Frame &)>::operator()(const std::shared_ptrmediakit::Frame &) const std_function.h:688
[MediaServer] mediakit::FrameWriterInterfaceHelper::inputFrame Frame.h:293
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::MediaSink::inputFrame MediaSink.cpp:75
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::CommonRtpDecoder::inputRtp CommonRtp.cpp:44
[MediaServer] mediakit::RtspDemuxer::inputRtp RtspDemuxer.cpp:64
[MediaServer] mediakit::RtspMediaSourceImp::onWrite RtspMediaSourceImp.h:59
[MediaServer] WebRtcPusher::onRecvRtp WebRtcPusher.cpp:83
[MediaServer] WebRtcTransportImp::onSortedRtp WebRtcTransport.cpp:950
[MediaServer] WebRtcTransportImp::::operator()(mediakit::RtpPacket::Ptr) WebRtcTransport.cpp:830
[MediaServer] std::_Function_handler<void (std::shared_ptrmediakit::RtpPacket), >::_M_invoke(const std::_Any_data &, std::shared_ptrmediakit::RtpPacket &&) std_function.h:300
[MediaServer] std::function<void (std::shared_ptrmediakit::RtpPacket)>::operator()(std::shared_ptrmediakit::RtpPacket) const std_function.h:688
[MediaServer] mediakit::RtpTrackImp::onRtpSorted RtpReceiver.cpp:133
[MediaServer] mediakit::RtpTrack::::operator()(uint16_t, mediakit::RtpPacket::Ptr &) const RtpReceiver.cpp:18
[MediaServer] std::_Function_handler<void (short unsigned int, std::shared_ptrmediakit::RtpPacket &), >::_M_invoke(const std::_Any_data &, unsigned short &&, std::shared_ptrmediakit::RtpPacket &) std_function.h:300
[MediaServer] std::function<void (unsigned short, std::shared_ptrmediakit::RtpPacket &)>::operator()(unsigned short, std::shared_ptrmediakit::RtpPacket &) const std_function.h:688
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popIterator RtpReceiver.h:122
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popPacket RtpReceiver.h:91
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::tryPopPacket RtpReceiver.h:129
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::sortPacket RtpReceiver.h:76
[MediaServer] mediakit::RtpTrack::inputRtp RtpReceiver.cpp:106
[MediaServer] RtpChannel::inputRtp WebRtcTransport.cpp:635
[MediaServer] WrappedRtpTrack::inputRtp WebRtcTransport.cpp:884
[MediaServer] WebRtcTransportImp::onRtp WebRtcTransport.cpp:856
[MediaServer] WebRtcTransport::inputSockData WebRtcTransport.cpp:320
[MediaServer] WebRtcSession::onRecv WebRtcSession.cpp:70
[MediaServer] toolkit::emitSessionRecv UdpServer.cpp:134
[MediaServer] toolkit::UdpServer::::::operator()(const toolkit::Buffer::Ptr &, sockaddr *, int) const UdpServer.cpp:257
[MediaServer] std::_Function_handler<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int), :: >::_M_invoke(const std::_Any_data &, const std::shared_ptrtoolkit::Buffer &, sockaddr *&&, int &&) std_function.h:300
[MediaServer] std::function<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int)>::operator()(const std::shared_ptrtoolkit::Buffer &, sockaddr , int) const std_function.h:688
[MediaServer] toolkit::Socket::onRead Socket.cpp:318
[MediaServer] toolkit::Socket::::operator()(int) const Socket.cpp:259
[MediaServer] std::_Function_handler<void (int), >::_M_invoke(const std::_Any_data &, int &&) std_function.h:300
[MediaServer] std::function<void (int)>::operator()(int) const std_function.h:688
[MediaServer] toolkit::EventPoller::runLoop EventPoller.cpp:304
[MediaServer] std::__invoke_impl<void, void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:73
[MediaServer] std::__invoke<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:95
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul> thread:244
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::operator() thread:251
[MediaServer] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller *, bool, bool> > >::_M_run thread:195
[libstdc++.so.6] 0x00007ffff7b1cde4
[libpthread.so.0] start_thread 0x00007ffff7c31609
[libc.so.6] clone 0x00007ffff780a263


#### 2



[MediaServer] mediakit::MP4Recorder::inputFrame MP4Recorder.cpp:101
[MediaServer] mediakit::MultiMediaSourceMuxer::onTrackFrame MultiMediaSourceMuxer.cpp:430
[MediaServer] mediakit::MediaSink::::operator()(const mediakit::Frame::Ptr &) const MediaSink.cpp:42
[MediaServer] std::_Function_handler<bool (const std::shared_ptrmediakit::Frame &), >::_M_invoke(const std::_Any_data &, const std::shared_ptrmediakit::Frame &) std_function.h:285
[MediaServer] std::function<bool (const std::shared_ptrmediakit::Frame &)>::operator()(const std::shared_ptrmediakit::Frame &) const std_function.h:688
[MediaServer] mediakit::FrameWriterInterfaceHelper::inputFrame Frame.h:293
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::H264Track::inputFrame_l H264.cpp:206
[MediaServer] mediakit::H264Track::inputFrame H264.cpp:153
[MediaServer] mediakit::MediaSink::inputFrame MediaSink.cpp:75
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::H264Track::inputFrame_l H264.cpp:206
[MediaServer] mediakit::H264Track::inputFrame H264.cpp:153
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::H264RtpDecoder::outputFrame H264Rtp.cpp:189
[MediaServer] mediakit::H264RtpDecoder::mergeFu H264Rtp.cpp:139
[MediaServer] mediakit::H264RtpDecoder::decodeRtp H264Rtp.cpp:161
[MediaServer] mediakit::H264RtpDecoder::inputRtp H264Rtp.cpp:50
[MediaServer] mediakit::RtspDemuxer::inputRtp RtspDemuxer.cpp:58
[MediaServer] mediakit::RtspMediaSourceImp::onWrite RtspMediaSourceImp.h:59
[MediaServer] WebRtcPusher::onRecvRtp WebRtcPusher.cpp:83
[MediaServer] WebRtcTransportImp::onSortedRtp WebRtcTransport.cpp:950
[MediaServer] WebRtcTransportImp::::operator()(mediakit::RtpPacket::Ptr) WebRtcTransport.cpp:830
[MediaServer] std::_Function_handler<void (std::shared_ptrmediakit::RtpPacket), >::_M_invoke(const std::_Any_data &, std::shared_ptrmediakit::RtpPacket &&) std_function.h:300
[MediaServer] std::function<void (std::shared_ptrmediakit::RtpPacket)>::operator()(std::shared_ptrmediakit::RtpPacket) const std_function.h:688
[MediaServer] mediakit::RtpTrackImp::onRtpSorted RtpReceiver.cpp:133
[MediaServer] mediakit::RtpTrack::::operator()(uint16_t, mediakit::RtpPacket::Ptr &) const RtpReceiver.cpp:18
[MediaServer] std::_Function_handler<void (short unsigned int, std::shared_ptrmediakit::RtpPacket &), >::_M_invoke(const std::_Any_data &, unsigned short &&, std::shared_ptrmediakit::RtpPacket &) std_function.h:300
[MediaServer] std::function<void (unsigned short, std::shared_ptrmediakit::RtpPacket &)>::operator()(unsigned short, std::shared_ptrmediakit::RtpPacket &) const std_function.h:688
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popIterator RtpReceiver.h:122
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::popPacket RtpReceiver.h:91
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::tryPopPacket RtpReceiver.h:129
[MediaServer] mediakit::PacketSortor<std::shared_ptrmediakit::RtpPacket, unsigned short, 1024ul, 32ul>::sortPacket RtpReceiver.h:76
[MediaServer] mediakit::RtpTrack::inputRtp RtpReceiver.cpp:106
[MediaServer] RtpChannel::inputRtp WebRtcTransport.cpp:635
[MediaServer] WrappedRtpTrack::inputRtp WebRtcTransport.cpp:884
[MediaServer] WebRtcTransportImp::onRtp WebRtcTransport.cpp:856
[MediaServer] WebRtcTransport::inputSockData WebRtcTransport.cpp:320
[MediaServer] WebRtcSession::onRecv WebRtcSession.cpp:70
[MediaServer] toolkit::emitSessionRecv UdpServer.cpp:134
[MediaServer] toolkit::UdpServer::::::operator()(const toolkit::Buffer::Ptr &, sockaddr *, int) const UdpServer.cpp:257
[MediaServer] std::_Function_handler<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int), :: >::_M_invoke(const std::_Any_data &, const std::shared_ptrtoolkit::Buffer &, sockaddr *&&, int &&) std_function.h:300
[MediaServer] std::function<void (const std::shared_ptrtoolkit::Buffer &, sockaddr *, int)>::operator()(const std::shared_ptrtoolkit::Buffer &, sockaddr , int) const std_function.h:688
[MediaServer] toolkit::Socket::onRead Socket.cpp:318
[MediaServer] toolkit::Socket::::operator()(int) const Socket.cpp:259
[MediaServer] std::_Function_handler<void (int), >::_M_invoke(const std::_Any_data &, int &&) std_function.h:300
[MediaServer] std::function<void (int)>::operator()(int) const std_function.h:688
[MediaServer] toolkit::EventPoller::runLoop EventPoller.cpp:304
[MediaServer] std::__invoke_impl<void, void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:73
[MediaServer] std::__invoke<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> invoke.h:95
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul> thread:244
[MediaServer] std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller , bool, bool> >::operator() thread:251
[MediaServer] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (toolkit::EventPoller::
)(bool, bool), toolkit::EventPoller *, bool, bool> > >::_M_run thread:195
[libstdc++.so.6] 0x00007ffff7b1cde4
[libpthread.so.0] start_thread 0x00007ffff7c31609
[libc.so.6] clone 0x00007ffff780a263


## 创建文件


在输入帧`(inputFrame`)时时如果满足下来条件会创建文件


1. \_muxer为空
2. 到了切片时间,并且只有音频
3. 到了切片时间,有视频并且遇到视频关键帧



[MediaServer] mediakit::MP4Recorder::createFile MP4Recorder.cpp:39
[MediaServer] mediakit::MP4Recorder::inputFrame MP4Recorder.cpp:116
[MediaServer] mediakit::MultiMediaSourceMuxer::onTrackFrame MultiMediaSourceMuxer.cpp:430
[MediaServer] mediakit::MediaSink::::operator()(const mediakit::Frame::Ptr &) const MediaSink.cpp:42
[MediaServer] std::_Function_handler<bool (const std::shared_ptrmediakit::Frame &), >::_M_invoke(const std::_Any_data &, const std::shared_ptrmediakit::Frame &) std_function.h:285
[MediaServer] std::function<bool (const std::shared_ptrmediakit::Frame &)>::operator()(const std::shared_ptrmediakit::Frame &) const std_function.h:688
[MediaServer] mediakit::FrameWriterInterfaceHelper::inputFrame Frame.h:293
[MediaServer] mediakit::FrameDispatcher::inputFrame Frame.h:331
[MediaServer] mediakit::H264Track::inputFrame_l H264.cpp:185
[MediaServer] mediakit::H264Track::::operator()(const char *, size_t, size_t) const H264.cpp:160
[MediaServer] std::_Function_handler<void (const char *, long unsigned int, long unsigned int), >::_M_invoke(const std::_Any_data &, const char *&&, unsigned long &&, unsigned long &&) std_function.h:300
[MediaServer] std::function<void (const char *, unsigned long, unsigned long)>::operator()(const char *, unsigned long, unsigned long) const std_function.h:688
[MediaServer] mediakit::splitH264(const char *, unsigned long, unsigned long, const std::function<void (const char *, unsigned long, unsigned long)> &) H264.cpp:77

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

char *, unsigned long, unsigned long, const std::function<void (const char *, unsigned long, unsigned long)> &) H264.cpp:77

[外链图片转存中…(img-gp22jPeg-1715659767313)]
[外链图片转存中…(img-cU5xucPT-1715659767314)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值