<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[KnBackend的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/KnBackend</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; KnBackend]]></copyright><item><title><![CDATA[FFmpeg：改写文件中的中文字符为UTF-8编码以支持WebRTC]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133288975</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133288975</guid><author>KnBackend</author><pubDate>Tue, 26 Sep 2023 02:38:05 +0800</pubDate><description><![CDATA[在使用FFmpeg处理中文字符时，特别是与WebRTC相关的场景，可能会遇到字符编码不匹配的问题。本文将介绍如何使用FFmpeg来重写文件中的中文字符，以确保其采用UTF-8编码，以支持WebRTC。通过运行上述命令，FFmpeg将读取输入文件中的中文字符，并将其转换为UTF-8编码后保存到输出文件中。这样，你就可以在支持WebRTC的环境中使用经过转换的文件了。首先，我们需要安装FFmpeg，并确保我们有适当的版本。需要注意的是，如果你的输入文件中的中文字符已经是UTF-8编码，你可以省略。]]></description><category></category></item><item><title><![CDATA[单例模式应用于 DxgiDuplicatorController WebRTC 的实现]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133287087</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133287087</guid><author>KnBackend</author><pubDate>Tue, 26 Sep 2023 01:20:37 +0800</pubDate><description><![CDATA[在上面的示例中，我们将构造函数设为私有，这样外部就无法直接实例化 DxgiDuplicatorController 对象。在 DxgiDuplicatorController WebRTC 中应用单例模式可以确保只有一个 DxgiDuplicatorController 实例存在，并且能够方便地共享和访问该实例。在实现 DxgiDuplicatorController WebRTC 时，我们可以使用单例模式来确保只有一个 DxgiDuplicatorController 实例存在。]]></description><category></category></item><item><title><![CDATA[WebRTC：构建实时通信的强大引擎]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133286226</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133286226</guid><author>KnBackend</author><pubDate>Tue, 26 Sep 2023 00:50:37 +0800</pubDate><description><![CDATA[WebRTC为开发者提供了一个强大的实时通信引擎，使得在浏览器和移动应用程序之间实现实时通信变得更加容易。通过深入了解WebRTC的基本原理，并使用相应的API进行开发，我们可以构建出各种实时通信应用，如语音通话、视频会议和文件共享等。WebRTC的核心技术是由Google开发的，它使用了一系列Web API，如WebRTC API、RTCPeerConnection API和RTCDataChannel API等。现在我们已经了解了WebRTC的基本原理，让我们看看如何使用它构建实时通信应用。]]></description><category></category></item><item><title><![CDATA[深入探索QUIC协议与WebRTC]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133283127</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133283127</guid><author>KnBackend</author><pubDate>Mon, 25 Sep 2023 23:08:06 +0800</pubDate><description><![CDATA[QUIC协议通过其低延迟、抗丢包和多路复用的特点，为WebRTC提供了更快速、更可靠的传输通道。开发者可以利用WebRTC的API和QUIC协议的特性，实现高效的实时通信应用深入解析QUIC协议与WebRTC。开发者可以利用WebRTC的API和QUIC协议的特性，实现高效的实时通信应用。低延迟：QUIC通过在建立连接的同时进行加密和多路复用，减少了握手的往返次数，从而降低了连接建立的延迟。低延迟：QUIC通过在建立连接的同时进行加密和多路复用，减少了握手的往返次数，从而降低了连接建立的延迟。]]></description><category></category></item><item><title><![CDATA[基于WebRtc的Android屏幕共享实现]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133281974</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133281974</guid><author>KnBackend</author><pubDate>Mon, 25 Sep 2023 22:28:04 +0800</pubDate><description><![CDATA[上述代码中，MainActivity类是一个示例Activity，用于演示如何获取MediaProjection实例并开始屏幕共享。在onActivityResult方法中，我们获取MediaProjection实例，并将其传递给ScreenSharingManager来开始屏幕共享。屏幕共享是一种常见的功能，它允许用户在多种场景下共享其设备屏幕的内容，如视频会议、远程教育和远程技术支持等。通过上述代码，您可以在Android端实现基于WebRtc的屏幕共享功能。]]></description><category></category></item><item><title><![CDATA[anyRTC 月SDK更新 - WebRTC技术的最新进展]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133262807</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133262807</guid><author>KnBackend</author><pubDate>Mon, 25 Sep 2023 05:43:04 +0800</pubDate><description><![CDATA[WebRTC是一种开源项目，旨在为Web浏览器和移动应用程序提供实时通信能力，包括音频、视频和数据传输。anyRTC作为WebRTC的重要实现之一，提供了一套方便易用的SDK，简化了WebRTC的开发过程。anyRTC月SDK的更新为开发者们提供了更强大和灵活的工具，使他们能够更轻松地构建高质量的实时通信应用。随着WebRTC技术的迅猛发展，anyRTC月SDK更新为开发者们带来了更多令人激动的功能和改进。本文将详细介绍anyRTC月SDK的更新内容，并提供相应的源代码示例。]]></description><category></category></item><item><title><![CDATA[PacedSender: 优化WebRTC传输性能的关键参数和应用]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133262402</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133262402</guid><author>KnBackend</author><pubDate>Mon, 25 Sep 2023 05:20:22 +0800</pubDate><description><![CDATA[然而，对于保证良好的用户体验和稳定的传输质量来说，优化WebRTC的传输性能显得尤为重要。本文将介绍一种名为PacedSender的关键参数及其应用，用于改善WebRTC传输性能，并提供相应的源代码供读者参考。通过合理配置和使用PacedSender的参数，我们可以改善实时通信应用的用户体验，并提供稳定的传输质量。拥塞窗口用于控制数据包的发送速率，当网络拥塞时，发送方会根据拥塞窗口的大小来限制发送速率。通过合理配置PacedSender的参数，我们可以优化WebRTC传输性能，提高实时通信应用的用户体验。]]></description><category></category></item><item><title><![CDATA[WebRTC 实时通信：通过网页实现实时通信]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133260927</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133260927</guid><author>KnBackend</author><pubDate>Mon, 25 Sep 2023 03:59:32 +0800</pubDate><description><![CDATA[通过以上的代码示例，我们演示了如何使用WebRTC在网页中实现实时通信功能。在WebRTC中，我们使用信令服务器来协调对等连接的建立。媒体协商是在对等连接建立后，浏览器之间交换媒体协商信息，以协商音频和视频的编解码器、分辨率和带宽等参数。接下来，我们将通过一个简单的示例来演示如何使用WebRTC在网页中实现实时通信。对象来管理对等连接。在对等连接的建立过程中，我们通过设置本地和远程描述来建立连接。在本文中，我们将探讨如何使用WebRTC在网页中实现实时通信功能，并提供相应的源代码示例来帮助您理解和实践。]]></description><category></category></item><item><title><![CDATA[WebRTC传输适配层：RtcAdapter]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133259396</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133259396</guid><author>KnBackend</author><pubDate>Mon, 25 Sep 2023 02:34:22 +0800</pubDate><description><![CDATA[总结来说，RtcAdapter是WebRTC中的传输适配层，它简化了WebRTC的使用，并提供了一组易用的API。RtcAdapter是WebRTC的传输适配层，它提供了一种简化和抽象化的接口，使开发者能够更轻松地在应用程序中实现基于WebRTC的实时通信功能。在上面的示例中，我们首先导入了RtcAdapter库，然后创建了一个RtcAdapter实例。它充当应用程序和底层WebRTC库之间的桥梁，隐藏了底层实现的复杂性，提供了一组简单易用的API供开发者使用。然后，我们设置本地描述并将其发送给远程端。]]></description><category></category></item><item><title><![CDATA[使用HTML和WebRTC调用摄像头和麦克风]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133255201</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133255201</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 22:51:53 +0800</pubDate><description><![CDATA[它提供了一种简单的方式来在浏览器中访问摄像头和麦克风，并使用音视频流进行实时通信。本文将介绍如何使用HTML和WebRTC调用摄像头和麦克风，并提供相应的源代码。请注意，由于浏览器安全策略的限制，WebRTC只能在使用HTTPS协议的网页中运行，或者在本地开发环境中使用localhost访问。如果你在使用HTTP协议的网页中尝试运行上述代码，浏览器将拒绝访问摄像头和麦克风。当你运行该文件时，浏览器将请求访问你的摄像头和麦克风，并在页面上显示摄像头的视频流。属性，从而在视频元素中显示摄像头的视频流。]]></description><category></category></item><item><title><![CDATA[RTP发送的WebRTC数据包]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133251889</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133251889</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 20:57:12 +0800</pubDate><description><![CDATA[我们涵盖了设置WebRTC环境、获取音频/视频流、发送session描述和ICE候选信息等关键步骤，并提供了相应的源代码示例。本文旨在介绍如何使用WebRTC发送RTP数据包，并附带相应的源代码。最后，远程服务器将接收到这些数据，并将其用于建立与另一端的连接。在那一端，我们需要处理接收到的session描述和ICE候选信息。通过以上的步骤，我们可以使用WebRTC发送RTP数据包。一旦我们有了本地的session描述，我们需要将其发送给远程服务器。首先，我们需要设置WebRTC的基本环境。]]></description><category></category></item><item><title><![CDATA[最新版的WebRTC在Windows 10和Visual Studio 2019下的编译]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133249751</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133249751</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 19:51:25 +0800</pubDate><description><![CDATA[你可以从Visual Studio的官方网站（https://visualstudio.microsoft.com/）下载并执行安装程序。确保选择安装C++开发工具。在Visual Studio 2019中，选择“生成”>“生成解决方案”来开始编译WebRTC。在Visual Studio 2019中，选择“生成”>“生成解决方案”来开始编译WebRTC。一旦编译完成，你将在输出目录中找到生成的WebRTC库文件（.lib）。在“解决方案资源管理器”中，右键单击“webrtc”解决方案，选择“属性”。]]></description><category></category></item><item><title><![CDATA[创建异步socket封装WebRTC]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133248797</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133248797</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 19:18:46 +0800</pubDate><description><![CDATA[然后，我们创建了一个BasicPacketSocketFactory实例，并指定了NetworkThread的Handler，以便在正确的线程上创建socket。BasicPacketSocketFactory是一个用于创建异步socket的工厂类，它提供了创建各种类型socket的方法，如UDP socket和TCP socket。总结起来，通过使用BasicPacketSocketFactory，我们可以方便地创建各种类型的异步socket，以满足WebRTC应用程序中的不同通信需求。]]></description><category></category></item><item><title><![CDATA[《WebRTC 学习笔记与实践指南》]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133245954</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133245954</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 17:38:22 +0800</pubDate><description><![CDATA[WebRTC（Web实时通信）是一种开放标准，用于在浏览器之间实现实时的音视频通信和数据传输。本文将介绍WebRTC的基本概念、原理和使用方法，并通过代码示例帮助读者更好地理解和应用WebRTC。未来，随着WebRTC标准的进一步发展和完善，我们可以期待更多创新和应用场景的涌现。本文介绍了WebRTC的基本概念、原理和使用方法，并通过代码示例帮助读者更好地理解和应用WebRTC。下面我们将介绍几个常见的应用实践，并提供相应的代码示例。WebRTC 的核心组件包括三个关键技术：媒体捕获、实时通信和网络传输。]]></description><category></category></item><item><title><![CDATA[Janus Qt客户端：实现多人会议及多视图展示的WebRTC应用]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133242335</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133242335</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 15:48:08 +0800</pubDate><description><![CDATA[Janus是一个开源的WebRTC服务器，它提供了丰富的功能和灵活的架构，可以用于构建多人会议和多视图展示的应用程序。在本文中，我们将介绍如何使用Janus Qt客户端实现这些功能，并提供相应的源代码。通过使用上述代码，我们可以实现Janus Qt客户端，实现多人会议和多视图展示的功能。Janus Qt客户端是一个基于Qt框架的应用程序，它利用Janus服务器提供的功能来实现多人会议和多视图展示。函数中，我们初始化Janus Qt客户端，加入会议，创建视频元素，并启动应用程序的事件循环。]]></description><category></category></item><item><title><![CDATA[WebRTC中的TURN协议：实现P2P通信的中继技术]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133241012</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133241012</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 15:06:36 +0800</pubDate><description><![CDATA[创建数据通道后，可以使用TURN服务器配置来设置RTCPeerConnection的配置，包括TURN服务器的URL、用户名和密码。通过使用TURN协议，WebRTC能够克服网络地址转换（NAT）和防火墙等网络限制，实现可靠的实时通信。TURN协议的作用类似于一个中间服务器，可以在两个无法直接通信的对等方之间传递数据。以上是一个简单的WebRTC和TURN协议的示例代码，用于建立P2P连接并传输数据。在上面的代码中，首先创建了一个RTCPeerConnection对象，它是WebRTC中的核心组件之一。]]></description><category></category></item><item><title><![CDATA[使用WebRTC通过RTP发送音频帧]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133237387</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133237387</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 12:33:49 +0800</pubDate><description><![CDATA[在上面的代码中，我们先创建了一个RTCPeerConnection对象，并通过addTrack方法将音频轨道添加到连接中。然后，我们将本地描述发送给对等端，对等端可以使用该描述创建一个SDP answer，并将其设置为远程描述。在上面的代码中，我们使用getUserMedia方法获取音频流，并从中获取第一个音频轨道。你可以在获取音频轨道后对其进行进一步的处理，例如添加音频处理器等。在上面的代码中，我们使用getSenders方法获取发送器（sender），并通过send方法将音频帧发送出去。]]></description><category></category></item><item><title><![CDATA[WebRTC源码分析：图像缩放与颜色空间转换]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133236589</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133236589</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 12:02:02 +0800</pubDate><description><![CDATA[这个函数接受输入图像的数据指针、宽度和高度，以及输出图像的数据指针、宽度和高度。该函数还接受一些其他参数，如输入图像的U和V分量的数据指针以及输出图像的U和V分量的数据指针。这些操作可以用于调整图像的大小，改变图像的分辨率，以及在不同的颜色空间之间进行转换。该函数接受输入图像的数据指针、宽度和高度，以及输出图像的数据指针、宽度和高度。在WebRTC中，常用的颜色空间转换包括RGB到YUV的转换和YUV到RGB的转换。图像缩放是一种常见的图像处理操作，它可以调整图像的大小，将图像放大或缩小到所需的尺寸。]]></description><category></category></item><item><title><![CDATA[学习：构建和处理 WebRTC 的 cc-feedback 包]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133234147</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133234147</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 10:38:51 +0800</pubDate><description><![CDATA[在上述代码中，build_cc_feedback_packet函数接收延迟、丢包率和抖动作为输入，并将它们打包为一个字节序列。通过使用cc-feedback包，发送方可以获得接收方对媒体质量的反馈信息，从而进行实时的优化和调整。在上述代码中，handle_cc_feedback_packet函数接收一个cc-feedback包的字节序列作为输入，并逐个解析出其中的延迟、丢包率和抖动值。通过定期发送cc-feedback包，发送方可以了解到媒体传输的延迟、丢包率、抖动等信息，从而进行动态的调整和优化。]]></description><category></category></item><item><title><![CDATA[WebRTC技术实践：Android音视频开发]]></title><link>https://blog.youkuaiyun.com/KnBackend/article/details/133231715</link><guid>https://blog.youkuaiyun.com/KnBackend/article/details/133231715</guid><author>KnBackend</author><pubDate>Sun, 24 Sep 2023 09:14:58 +0800</pubDate><description><![CDATA[WebRTC（Web Real-Time Communication）是一种开放的实时通信技术，它提供了在浏览器和移动设备上进行高质量音视频通话的能力。在Android平台上，我们可以通过集成WebRTC框架和合理使用其提供的API，实现高质量的音视频通信和数据传输功能。WebRTC是由Google主导开发的一项开放技术，它允许在Web浏览器和移动应用中实现实时音视频通信的能力。注意：以上代码示例是一个基本的示例，实际应用中可能需要是一个基本的示例，实际应用中可能需要根据具体需求进行修改和完善。]]></description><category></category></item></channel></rss>