-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何在保存录像的时候定时截图成JPEG格式? #50
Labels
Comments
你既然是要在mp4录制时截图,那么你可以在mp4录制相关的代码里面截图, void Mp4Maker::onTrackFrame(const Frame::Ptr &frame) {
switch (frame->getCodecId()){
case CodecH264:{
inputH264(frame->data() + frame->prefixSize(), frame->size() - frame->prefixSize(),frame->stamp());
}
break;
case CodecAAC:{
inputAAC(frame->data() + frame->prefixSize(), frame->size() - frame->prefixSize(),frame->stamp());
}
break;
default:
break;
}
} 你可以在输入H264时,提取I帧,然后解码保存截图: //在Mp4Maker类中新增 List<Frame::Ptr> _frameCached 成员变量
void Mp4Maker::onTrackFrame(const Frame::Ptr &frame) {
switch (frame->getCodecId()){
case CodecH264:{
//这里的代码逻辑是让SPS、PPS、IDR这些时间戳相同的帧打包到一起当做一个帧处理,
if (!_frameCached.empty() && _frameCached.back()->dts() != frame->dts()) {
Frame::Ptr back = _frameCached.back();
Buffer::Ptr merged_frame = back;
if(_frameCached.size() != 1){
string merged;
_frameCached.for_each([&](const Frame::Ptr &frame){
merged.append(frame->data(),frame->size());
});
merged_frame = std::make_shared<BufferString>(std::move(merged));
}
//这里是合并sps pps idr帧的复合帧,可以用于解码成yuv,然后编码成jpeg保存截图
// 数据指针:merged_frame->data(), 数据大小:merged_frame->size()
_frameCached.clear();
}
_frameCached.emplace_back(frame);
inputH264(frame->data() + frame->prefixSize(), frame->size() - frame->prefixSize(),frame->stamp());
}
break;
case CodecAAC:{
inputAAC(frame->data() + frame->prefixSize(), frame->size() - frame->prefixSize(),frame->stamp());
}
break;
default:
break;
}
} |
就是想知道 解码保存截图, 这个是怎么做的? |
范例代码都帮你写好了 已经提取到sps、pps、idr帧,剩下的解码成yuv再编码成JPEG你自己不会吗? |
Closed
Closed
Closed
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
保存录像mp4我知道如何操作, 就是想加个定时截图要怎么办?每天12点截个图,最好是jpg格式的。
The text was updated successfully, but these errors were encountered: