QT环境实现低延迟RTSP|RTMP播放器

好多开发者在QT环境下实现RTMP或RTSP播放时,首先考虑到的是集成VLC,集成后,却发现VLC在延迟、断网重连、稳定性等各个方面不尽人意,无法满足上线环境需求。本文以调用大牛直播SDK(官方)的Windows平台播放端SDK为例,介绍下如何在QT下实现低延迟的RTMP|RTSP播放器,废话不多说,先上图:

大牛直播SDK有MFC的demo,所以在QT上实现播放轻车熟路,如果需要多窗口播放,也可以参考转发的demo,转发的那个4窗口预览的demo做了二次封装,调用更方便。

窗体布局不再赘述,就是个普通的6窗口布局,不得不说,QT在窗体布局这块,相对MFC真的太方便了。

考虑到大多场景下,开发者有多路播放诉求,针对这种情况,我们对player做个简单的封装:

开始播放:

bool player_wrapper::StartPlay(const std::string& url, bool is_rtsp_tcp_mode, bool is_mute)
{
	if (is_playing_)
		return false;

	if (!OpenPlayerHandle(url, is_rtsp_tcp_mode, is_mute))
		return false;

	player_api_->SetBuffer(player_handle_, 100);
	player_api_->SetMute(player_handle_, is_mute ? 1 : 0);
	player_api_->SetRtspAutoSwitchTcpUdp(player_handle_, true);
	player_api_->SetRtspTimeout(player_handle_, 10);

	player_api_->SetRenderWindow(player_handle_, render_wnd_);
	player_api_->SetRenderScaleMode(player_handle_, 1);

	auto ret = player_api_->StartPlay(player_handle_);
	
	if (NT_ERC_OK != ret)
	{
		if (!is_recording_)
		{
			player_api_->Close(player_handle_);
			player_handle_ = NULL;
		}

		return false;
	}

	is_playing_ = true;

	return true;
}

开始播放封装,调用了O

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值