Streaming through the Datastead Encoder

Prev

Next

 






































































































Streaming through the Datastead Encoder


Declaration
procedure TfrmMainForm.btnMultipurposeUDPStreamingClick(Sender: TObject);
begin
if FMultipurposeUDPStreamingID=-1 then begin
FMultipurposeUDPStreamingID := VideoGrabber.Encoders_CreateInstanceForStreaming ('udp://239.255.0.1:10124');
end;
if FMultipurposeUDPStreamingID > -1 then begin
/// uncomment one of the lines below to use a specific codec, e.g.:
//VideoGrabber.Encoder_SetStr (FMultipurposeUDPStreamingID, Enc_Video_Codec, 'hevc');
//VideoGrabber.Encoder_SetStr (FMultipurposeUDPStreamingID, Enc_Video_Codec, 'h264');

VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Video_Enabled_bool, 1);
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Audio_Enabled_bool, 1);
if not chkStreamingVideoEnabled.Checked then begin
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Video_Enabled_bool, 0);
end;
if not chkStreamingAudioEnabled.Checked then begin
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Audio_Enabled_bool, 0);
end;
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Video_BitRate_kb, 2000);
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Video_rc_MinBitRate_kb, 1800);
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Video_rc_MaxBitRate_kb, 2200);
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_Video_IDR_Interval, 30);
/// uncomment to enable the GPU encoder, if available for h264 or hevc
// VideoGrabber.Encoder_SetInt (FStreamingEncoderId, Enc_Video_GPU_Encoder, LongInt (Enc_GPU_Auto)); // or specify directly Enc_GPU_Intel_QSV, Enc_GPU_NVidia_NVENC or Enc_GPU_AMD_AMF
VideoGrabber.Encoder_SetInt (FMultipurposeUDPStreamingID, Enc_IsActive_bool, 1);
end;
VideoGrabber.VideoSource := vs_ScreenRecording;
VideoGrabber.UseNearestVideoSize (1920, 1080, true);
VideoGrabber.StartPreview();
end;


private void btnMultipurposeUDPStreaming_Click(object sender, EventArgs e)

if (m_MultipurposeUDPStreamingID == -1)

m_MultipurposeUDPStreamingID=VideoGrabber.Encoders_CreateInstanceForStreaming("udp://239.255.0.1:10124");

if (m_MultipurposeUDPStreamingID > -1)

/// uncomment one of the lines below to use a specific codec, e.g.:
//VideoGrabber.Encoder_SetStr (FMultipurposeUDPStreamingID, TEncoder_str.Enc_Video_Codec, "hevc");
//VideoGrabber.Encoder_SetStr (FMultipurposeUDPStreamingID, TEncoder_str.Enc_Video_Codec, "h264");

VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Video_Enabled, 1);
VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Audio_Enabled, 1);
if (! chkVideoStreamingEnabled.Checked)
VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Video_Enabled, 0);

if (!chkAudioStreamingEnabled.Checked)
VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Audio_Enabled, 0);

VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Video_BitRate_kb, 2000);
VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Video_rc_MinBitRate_kb, 1800);
VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Video_rc_MaxBitRate_kb, 2200);
VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_Video_IDR_Interval, 30);
/// uncomment to enable the GPU encoder, if (available for h264 or hevc
// VideoGrabber.Encoder_SetInt (FStreamingEncoderId, TEncoder_int.Enc_Video_GPU_Encoder, LongInt (TEncoder_int.Enc_GPU_Auto)); // or specify directly Enc_GPU_Intel_QSV, Enc_GPU_NVidia_NVENC or Enc_GPU_AMD_AMF
VideoGrabber.Encoder_SetInt(m_MultipurposeUDPStreamingID, TEncoder_int.Enc_IsActive_bool, 1);

VideoGrabber.VideoSource=vs_ScreenRecording;

VideoGrabber.UseNearestVideoSize (1920, 1080, true);
VideoGrabber.StartPreview();

Description

The installation and functions overview are described in the Datastead Encoder chapter.



See Also
TNetworkStreamingType TOnClientConnection TNetworkStreaming TOnDirectNetworkStreamingHostUrl ASFAudioBitRate ASFAudioChannels ASFDeinterlaceMode ASFFixedFrameRate ASFMediaServerPublishingPoint ASFMediaServerRemovePublishingPointAfterDisconnect ASFMediaServerTemplatePublishingPoint ASFNetworkMaxUsers ASFNetworkPort ASFProfile ASFProfileFromCustomFile ASFProfiles ASFProfilesCount ASFProfileVersion ASFVideoBitRate ASFVideoFrameRate ASFVideoHeight ASFVideoMaxKeyFrameSpacing ASFVideoQuality ASFVideoWidth NetworkStreaming NetworkStreamingType OnAuthenticationNeeded OnClientConnection OnDirectNetworkStreamingHostUrl ShowDialog StartAudioRendering StreamingURL