पिक्सेल स्ट्रीमिंग ऑडियो कैप्चर
पिक्सेल स्ट्रीमिंग Unreal Engine के लिए एक प्लगइन है जो रेंडर किए गए फ्रेमों को स्ट्रीम करता है और WebRTC के माध्यम से इनपुट/आउटपुट को सिंक्रनाइज़ करता है। एप्लिकेशन सर्वर साइड पर चलती है, जबकि क्लाइंट साइड रेंडरिंग और उपयोगकर्ता इंटरैक्शन को संभालती है। पिक्सेल स्ट्रीमिंग और सेटअप के बारे में अधिक जानकारी के लिए, पिक्सेल स्ट्रीमिंग डॉक्यूमेंटेशन देखें।
पिक्सेल स्ट्रीमिंग बनाम पिक्सेल स्ट्रीमिंग 2
यह प्लगइन Unreal Engine में उपलब्ध दोनों पिक्सेल स्ट्रीमिंग संस्करणों का समर्थन करता है:
- पिक्सेल स्ट्रीमिंग - मूल प्लगइन, UE 5.2 से उपलब्ध और वर्तमान इंजन संस्करणों में अभी भी सक्रिय रूप से उपयोग किया जा रहा है
- पिक्सेल स्ट्रीमिंग 2 - UE 5.5 में एक अगली पीढ़ी के कार्यान्वयन के रूप में पेश किया गया, जिसमें एक बेहतर आंतरिक आर्किटेक्चर है। पिक्सेल स्ट्रीमिंग 2 के बारे में अधिक जानें
दोनों संस्करण पूरी तरह से समर्थित हैं और नवीनतम Unreal Engine रिलीज़ (UE 5.6 सहित) में उपलब्ध हैं। वह संस्करण चुनें जो आपके प्रोजेक्ट के पिक्सेल स्ट्रीमिंग सेटअप से मेल खाता हो।
दोनों संस्करणों के लिए API समान है, केवल अंतर यह है कि पिक्सेल स्ट्रीमिंग 2 कक्षाओं और कार्यों में उनके नामों में "2" शामिल होता है (उदाहरण के लिए, UPixelStreamingCapturableSoundWave बनाम UPixelStreaming2CapturableSoundWave)।
संगतता
यह समाधान निम्नलिखित के साथ काम करता है:
- आधिकारिक पिक्सेल स्ट्रीमिंग इन्फ्रास्ट्रक्चर (Epic Games संदर्भ कार्यान्वयन)
- थर्ड-पार्टी पिक्सेल स्ट्रीमिंग प्रदाता जिनमें शामिल हैं:
- Vagon.io
- Arcane Mirage
- Eagle 3D Streaming
- अन्य WebRTC-आधारित स्ट्रीमिंग समाधान
- ऑपरेटिंग सिस्टम: Windows और Linux सर्वर
कार्यान्वयन का इन वातावरणों में परीक्षण किया गया है और उपयोग किए गए पिक्सेल स्ट्रीमिंग होस्टिंग समाधान की परवाह किए बिना सही ढंग से कार्य करता है।
एक्सटेंशन प्लगइन इंस्टालेशन
यह सुविधा Runtime Audio Importer प्लगइन के एक एक्सटेंशन के रूप प्रदान की जाती है। इसका उपयोग करने के लिए, आपको यह करना होगा:
- सुनिश्चित करें कि Runtime Audio Importer प्लगइन आपके प्रोजेक्ट में पहले से ही इंस्टॉल है
- अपने पिक्सेल स्ट्रीमिंग संस्करण के लिए एक्सटेंशन प्लगइन डाउनलोड करें:
- पिक्सेल स्ट्रीमिंग: Google Drive से डाउनलोड करें
- पिक्सेल स्ट्रीमिंग 2: Google Drive से डाउनलोड करें
- डाउनलोड की गई आर्काइव से फ़ोल्डर को अपने प्रोजेक्ट के
Pluginsफ़ोल्डर में निकालें (यदि यह फ़ोल्डर मौजूद नहीं है तो इसे बनाएं) - अपने प्रोजेक्ट को रीबिल्ड करें (इस एक्सटेंशन के लिए एक C++ प्रोजेक्ट की आवश्यकता होती है)
- ये एक्सटेंशन स्रोत कोड के रूप में प्रदान किए जाते हैं और उपयोग करने के लिए एक C++ प्रोजेक्ट की आवश्यकता होती है
- Pixel Streaming एक्सटेंशन: UE 5.2 और बाद में समर्थित
- Pixel Streaming 2 एक्सटेंशन: UE 5.5 और बाद में समर्थित
- प्लगइन्स को मैन्युअल रूप से बनाने के तरीके के बारे में अधिक जानकारी के लिए, Building Plugins tutorial देखें
अवलोकन
Pixel Streaming Capturable Sound Wave मानक Capturable Sound Wave का विस्तार करता है ताकि Pixel Streaming क्लाइंट्स के माइक्रोफोन से सीधे ऑडियो कैप्चर करने की अनुमति मिल सके। यह सुविधा आपको यह करने में सक्षम बनाती है:
- Pixel Streaming के माध्यम से जुड़े ब्राउज़रों से ऑडियो कैप्चर करें
- विशिष्ट खिलाड़ियों/साथियों से ऑडियो प्रोसेस करें
- दूरस्थ उपयोगकर्ताओं से वॉइस चैट, वॉइस कमांड, या ऑडियो रिकॉर्डिंग लागू करें
मूल उपयोग
एक Pixel Streaming Capturable Sound Wave बनाना
सबसे पहले, आपको एक Pixel Streaming Capturable Sound Wave ऑब्जेक्ट बनाने की आवश्यकता है:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++
![]()
PixelStreamingSoundWave = UPixelStreamingCapturableSoundWave::CreatePixelStreamingCapturableSoundWave();
- Blueprint
- C++
Create Pixel Streaming 2 Capturable Sound Wave नोड का उपयोग करें (Pixel Streaming के समान लेकिन नाम में "2" के साथ)
PixelStreamingSoundWave = UPixelStreaming2CapturableSoundWave::CreatePixelStreaming2CapturableSoundWave();
आपको पिक्सेल स्ट्रीमिंग कैप्चरेबल साउंड वेव को एक मजबूत संदर्भ के रूप में व्यवहार करना चाहिए ताकि समय से पहले विनाश को रोका जा सके (उदाहरण के लिए, ब्लूप्रिंट्स में इसे एक अलग वेरिएबल में असाइन करके या C++ में UPROPERTY() का उपयोग करके)।
कैप्चर शुरू करना और रोकना
आप सरल फ़ंक्शन कॉल के साथ ऑडियो कैप्चर शुरू और रोक सकते हैं:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++

// Assuming PixelStreamingSoundWave is a reference to a UPixelStreamingCapturableSoundWave object
// Start capturing audio (the device ID parameter is ignored for Pixel Streaming)
PixelStreamingSoundWave->StartCapture(0);
// Stop capturing audio
PixelStreamingSoundWave->StopCapture();
- Blueprint
- C++
अपने Pixel Streaming 2 Capturable Sound Wave के साथ समान Start Capture और Stop Capture नोड्स का उपयोग करें
// Assuming PixelStreamingSoundWave is a reference to a UPixelStreaming2CapturableSoundWave object
// Start capturing audio (the device ID parameter is ignored for Pixel Streaming 2)
PixelStreamingSoundWave->StartCapture(0);
// Stop capturing audio
PixelStreamingSoundWave->StopCapture();
StartCapture में DeviceId पैरामीटर को Pixel Streaming Capturable Sound Waves के लिए नजरअंदाज कर दिया जाता है, क्योंकि कैप्चर स्रोत स्वचालित रूप से या आपके द्वारा सेट किए गए प्लेयर इन्फो द्वारा निर्धारित किया जाता है।
कैप्चर स्थिति की जाँच करना
आप जाँच सकते हैं कि साउंड वेव वर्तमान में ऑडियो कैप्चर कर रहा है या नहीं:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++

// Assuming PixelStreamingSoundWave is a reference to a UPixelStreamingCapturableSoundWave object
bool bIsCapturing = PixelStreamingSoundWave->IsCapturing();
- Blueprint
- C++
अपने Pixel Streaming 2 Capturable Sound Wave के साथ समान Is Capturing नोड का उपयोग करें
// Assuming PixelStreamingSoundWave is a reference to a UPixelStreaming2CapturableSoundWave object
bool bIsCapturing = PixelStreamingSoundWave->IsCapturing();
पूर्ण उदाहरण
यहाँ Pixel Streaming ऑडियो कैप्चर सेट अप करने का एक पूर्ण उदाहरण है:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++
![]()
यह Pixel Streaming क्लाइंट से ऑडियो डेटा कैप्चर करने के लिए एक बुनियादी कोड उदाहरण है।
उदाहरण EXAMPLEMODULE मॉड्यूल के भीतर UPixelStreamingAudioExample क्लास में स्थित CapturePixelStreamingAudioExample फ़ंक्शन का उपयोग करता है।
उदाहरण को सफलतापूर्वक चलाने के लिए, .Build.cs फ़ाइल में PublicDependencyModuleNames या PrivateDependencyModuleNames में RuntimeAudioImporter और PixelStreaming दोनों मॉड्यूल जोड़ना सुनिश्चित करें, साथ ही अपने प्रोजेक्ट की .uproject फ़ाइल में भी।
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "PixelStreamingAudioExample.generated.h"
UCLASS(BlueprintType)
class EXAMPLEMODULE_API UPixelStreamingAudioExample : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
void CapturePixelStreamingAudioExample();
private:
// Keep a strong reference to prevent garbage collection
UPROPERTY()
class UPixelStreamingCapturableSoundWave* PixelStreamingSoundWave;
};
#include "PixelStreamingAudioExample.h"
#include "Sound/PixelStreamingCapturableSoundWave.h"
#include "Kismet/GameplayStatics.h"
void UPixelStreamingAudioExample::CapturePixelStreamingAudioExample()
{
// Create a Pixel Streaming Capturable Sound Wave
PixelStreamingSoundWave = UPixelStreamingCapturableSoundWave::CreatePixelStreamingCapturableSoundWave();
// Start capturing audio
PixelStreamingSoundWave->StartCapture(0);
// Play the sound wave to hear the captured audio
UGameplayStatics::PlaySound2D(GetWorld(), PixelStreamingSoundWave);
// Set up a timer to stop capture after 30 seconds (just for demonstration)
FTimerHandle TimerHandle;
GetWorld()->GetTimerManager().SetTimer(TimerHandle, [this]()
{
PixelStreamingSoundWave->StopCapture();
}, 30.0f, false);
}
- Blueprint
- C++
Blueprint सेटअप Pixel Streaming के समान है, लेकिन इसके बजाय Create Pixel Streaming 2 Capturable Sound Wave नोड का उपयोग करें
यह Pixel Streaming 2 क्लाइंट से ऑडियो डेटा कैप्चर करने के लिए एक बुनियादी कोड उदाहरण है।
यह उदाहरण EXAMPLEMODULE मॉड्यूल के भीतर UPixelStreaming2AudioExample क्लास में स्थित CapturePixelStreaming2AudioExample फ़ंक्शन का उपयोग करता है।
उदाहरण को सफलतापूर्वक चलाने के लिए, सुनिश्चित करें कि .Build.cs फ़ाइल में PublicDependencyModuleNames या PrivateDependencyModuleNames में RuntimeAudioImporter और PixelStreaming2 दोनों मॉड्यूल जोड़ें, साथ ही अपने प्रोजेक्ट की .uproject फ़ाइल में भी।
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "PixelStreaming2AudioExample.generated.h"
UCLASS(BlueprintType)
class EXAMPLEMODULE_API UPixelStreaming2AudioExample : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
void CapturePixelStreaming2AudioExample();
private:
// Keep a strong reference to prevent garbage collection
UPROPERTY()
class UPixelStreaming2CapturableSoundWave* PixelStreamingSoundWave;
};
#include "PixelStreaming2AudioExample.h"
#include "Sound/PixelStreaming2CapturableSoundWave.h"
#include "Kismet/GameplayStatics.h"
void UPixelStreaming2AudioExample::CapturePixelStreaming2AudioExample()
{
// Create a Pixel Streaming 2 Capturable Sound Wave
PixelStreamingSoundWave = UPixelStreaming2CapturableSoundWave::CreatePixelStreaming2CapturableSoundWave();
// Start capturing audio
PixelStreamingSoundWave->StartCapture(0);
// Play the sound wave to hear the captured audio
UGameplayStatics::PlaySound2D(GetWorld(), PixelStreamingSoundWave);
// Set up a timer to stop capture after 30 seconds (just for demonstration)
FTimerHandle TimerHandle;
GetWorld()->GetTimerManager().SetTimer(TimerHandle, [this]()
{
PixelStreamingSoundWave->StopCapture();
}, 30.0f, false);
}
एकाधिक पिक्सेल स्ट्रीमिंग प्लेयर्स के साथ कार्य करना
ऐसे परिदृश्यों में जहां आपके पास एक साथ कई पिक्सेल स्ट्रीमिंग क्लाइंट जुड़े हुए हैं, आपको विशिष्ट प्लेयर्स से ऑडियो कैप्चर करने की आवश्यकता हो सकती है। निम्नलिखित सुविधाएं आपको इसे प्रबंधित करने में मदद करती हैं।
उपलब्ध पिक्सेल स्ट्रीमिंग प्लेयर्स प्राप्त करना
यह पहचानने के लिए कि कौन से पिक्सेल स्ट्रीमिंग प्लेयर्स जुड़े हुए हैं:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++
![]()
UPixelStreamingCapturableSoundWave::GetAvailablePixelStreamingPlayers(FOnGetAvailablePixelStreamingPlayersResultNative::CreateWeakLambda(this, [](const TArray<FPixelStreamingPlayerInfo_RAI>& AvailablePlayers)
{
// Handle the list of available players
for (const FPixelStreamingPlayerInfo_RAI& PlayerInfo : AvailablePlayers)
{
UE_LOG(LogTemp, Log, TEXT("Available player: %s on streamer: %s"), *PlayerInfo.PlayerId, *PlayerInfo.StreamerId);
}
}));
- Blueprint
- C++
Get Available Pixel Streaming 2 Players नोड का उपयोग करें
UPixelStreaming2CapturableSoundWave::GetAvailablePixelStreaming2Players(FOnGetAvailablePixelStreaming2PlayersResultNative::CreateWeakLambda(this, [](const TArray<FPixelStreaming2PlayerInfo_RAI>& AvailablePlayers)
{
// Handle the list of available players
for (const FPixelStreaming2PlayerInfo_RAI& PlayerInfo : AvailablePlayers)
{
UE_LOG(LogTemp, Log, TEXT("Available player: %s on streamer: %s"), *PlayerInfo.PlayerId, *PlayerInfo.StreamerId);
}
}));
कैप्चर करने के लिए प्लेयर सेट करना
जब आपको किसी विशिष्ट प्लेयर से कैप्चर करने की आवश्यकता हो:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++

// Assuming PixelStreamingSoundWave is a reference to a UPixelStreamingCapturableSoundWave object
// and PlayerInfo is a FPixelStreamingPlayerInfo_RAI object from GetAvailablePixelStreamingPlayers
PixelStreamingSoundWave->PlayerInfo = PlayerInfo;
- Blueprint
- C++
Set Player To Capture From नोड का उपयोग अपने Pixel Streaming 2 Capturable Sound Wave के साथ करें
// Assuming PixelStreamingSoundWave is a reference to a UPixelStreaming2CapturableSoundWave object
// and PlayerInfo is a FPixelStreaming2PlayerInfo_RAI object from GetAvailablePixelStreaming2Players
PixelStreamingSoundWave->PlayerInfo = PlayerInfo;
यदि आप प्लेयर आईडी खाली छोड़ते हैं, तो ध्वनि तरंग स्वचालित रूप से पहले उपलब्ध प्लेयर को सुनना शुरू कर देगी जो कनेक्ट होता है। यह डिफ़ॉल्ट व्यवहार है और सिंगल-प्लेयर परिदृश्यों के लिए अच्छी तरह से काम करता है।
सामान्य उपयोग के मामले
वॉयस चैट कार्यान्वयन
आप दूरस्थ उपयोगकर्ताओं और स्थानीय खिलाड़ियों के बीच वॉयस चैट लागू करने के लिए Pixel Streaming Capturable Sound Waves का उपयोग कर सकते हैं:
- प्रत्येक कनेक्टेड प्लेयर के लिए एक Pixel Streaming Capturable Sound Wave बनाएं
- यह प्रबंधित करने के लिए एक सिस्टम सेट अप करें कि वर्तमान में कौन से खिलाड़ी बोल रहे हैं
- यह पता लगाने के लिए वॉयस एक्टिविटी डिटेक्शन सिस्टम का उपयोग करें कि उपयोगकर्ता कब बोल रहे हैं
- यदि आवश्यक हो तो Unreal Engine के ऑडियो सिस्टम का उपयोग करके ऑडियो को स्थानिक बनाएं
स्पीच रिकग्निशन के साथ वॉयस कमांड
आप Runtime Speech Recognizer प्लगइन के साथ इस सुविधा को संयोजित करके दूरस्थ उपयोगकर्ताओं के लिए वॉयस कमांड रिकग्निशन लागू कर सकते हैं:
- Pixel Streaming Capturable Sound Wave का उपयोग करके Pixel Streaming क्लाइंट से ऑडियो कैप्चर करें
- कैप्चर किए गए ऑडियो को सीधे Runtime Speech Recognizer को फीड करें
- अपने गेम लॉजिक में पहचाने गए टेक्स्ट को प्रोसेस करें
Runtime Speech Recognizer उदाहरणों में मानक Capturable Sound Wave को Pixel Streaming Capturable Sound Wave (या Pixel Streaming 2 Capturable Sound Wave) से बस बदलें, और यह Pixel Streaming ऑडियो इनपुट के साथ सहज रूप से काम करेगा।
दूरस्थ उपयोगकर्ता ऑडियो रिकॉर्डिंग
आप बाद में प्लेबैक के लिए दूरस्थ उपयोगकर्ताओं से ऑडियो रिकॉर्ड कर सकते हैं:
- Pixel Streaming Capturable Sound Wave का उपयोग करके ऑडियो कैप्चर करें
- एक्सपोर्ट ऑडियो का उपयोग करके कैप्चर किए गए ऑडियो को फ़ाइल में निर्यात करें
- फ़ाइल को बाद में उपयोग या विश्लेषण के लिए सहेजें