RTMP|RTSP播放器只解码视频关键帧功能探讨

技术背景

我们在做RTMP|RTSP直播播放器的时候,遇到过这样的技术诉求,在一些特定的应用场景中,可能只需要关键帧的信息,例如视频内容分析系统,可能只对关键帧进行分析,以提取特征、检测对象或场景变化。鉴于关键帧包含完整的图像信息,解码时不需要依赖其他帧,可以独立解码。相比之下,预测帧(P 帧)和双向预测帧(B 帧)需要参考其他帧的信息进行解码,在这种情况下,仅解码关键帧可以满足需求,同时避免不必要的解码工作。

技术实现

以大牛直播SDK的Windows平台为例,特别是多路播放或视觉算法内容处理场景下,仅解码播放关键帧非常有必要,为此,我们设计的接口如下:

cpp 复制代码
/*
 * smart_player_sdk.h
 * Created by daniusdk.com (C) All rights reserved.
 *
 *设置只解码视频关键帧
 *is_only_dec_key_frame: 1:表示只解码关键帧, 0:表示都解码, 默认是0
 *成功返回NT_ERC_OK
 */
NT_UINT32(NT_API *SetOnlyDecodeVideoKeyFrame)(NT_HANDLE handle, NT_INT32 is_only_dec_key_frame);

调用非常简单:

cpp 复制代码
void CSmartPlayerDlg::OnBnClickedCheckOnlyDecodeVideoKeyFrame()
{
	if (player_handle_ != NULL)
	{
		player_api_.SetOnlyDecodeVideoKeyFrame(player_handle_, BST_CHECKED == btn_check_only_decode_video_key_frame_.GetCheck() ? 1 : 0);
	}
}

总结

设置只解码视频关键帧,一般来说,需要设计成可动态切换解码绘制所有帧的,方便实际场景下,需要全帧解码播放的时候,确保数据的灵活性和完整性。

相关推荐
EasyDSS6 小时前
私有化音视频系统/视频直播点播/音视频点播EasyDSS构建智慧校园视频智能服务新体系
音视频
我是发哥哈6 小时前
跨AI模型生成视频的五大维度对比:选型避坑指南
大数据·人工智能·学习·机器学习·chatgpt·音视频
墨染倾城殇10 小时前
蓝牙 5.3 双模一体,面向车载、智能音箱及多场景的经典音频与LE Audio应用
音视频·智能音箱·le audio·蓝牙双模·蓝牙5.3
Gc9umsbL111 小时前
从FLAC到WAV:whisper.cpp中的FFmpeg音频预处理全解析
ffmpeg·whisper·音视频
CWM-1831253363914 小时前
东芝TDS5B212MX/TDS5C212MX最高支持64G的高速切换开关芯片DP2.0/PCIE6.0/USB4等接口二切一
音视频
ZC跨境爬虫15 小时前
跟着 MDN 学 HTML day_27:(深入理解 HTML 属性反射机制)
前端·javascript·ui·html·音视频·媒体
EasyDSS15 小时前
视频直播点播/高清点播/音视频点播/云点播/云直播EasyDSS构建社交娱乐全链路视频解决方案
音视频·娱乐
fengfuyao98515 小时前
STM32 ADC音频采样与FFT频谱分析实现
stm32·嵌入式硬件·音视频
翼龙云_cloud16 小时前
腾讯云代理商:腾讯云qGPU+TRTC实时音视频 AI 处理的黄金组合
人工智能·腾讯云·实时音视频·ai算力·腾讯云qgpu
wsoz16 小时前
音视频控制传输协议(AVCTP)
音视频