Home > Forum > SDK RTMP protocol cannot be used

SDK RTMP protocol cannot be used

Jan 20, 2025
test wrote
VideoCaptureCore videoCaptureCore = new VideoCaptureCore();
videoCaptureCore.Mode = VideoCaptureMode.ScreenCapture;
ScreenCaptureSourceSettings sourceSettings = new ScreenCaptureSourceSettings
{
FullScreen = false,
WindowHandle = mainWindowHandle,
FrameRate = VideoFrameRate.FPS_25,
GrabMouseCursor = true,
Mode = ScreenCaptureMode.Window
};
videoCaptureCore.Screen_Capture_Source = sourceSettings;
videoCaptureCore.Audio_RecordAudio = videoCaptureCore.Audio_PlayAudio = false;
// videoCaptureCore.Output_Filename = videoPath;
videoCaptureCore.Network_Streaming_Enabled = true;
videoCaptureCore.Network_Streaming_Audio_Enabled = false;
videoCaptureCore.Network_Streaming_Format = NetworkStreamingFormat.RTMP_FFMPEG_EXE;
FFMPEGEXEOutput ffmpegOutput = new FFMPEGEXEOutput();
ffmpegOutput.FillDefaults(DefaultsProfile.MP4_H264_AAC,true);
MP4Output mp4Output = new MP4Output();
videoCaptureCore.Output_Format = mp4Output;
videoCaptureCore.Debug_Mode = true;
videoCaptureCore.Debug_Dir = "E:\\bug";
videoCaptureCore.Network_Streaming_Output = ffmpegOutput;
videoCaptureCore.Network_Streaming_URL = "rtmp://172.24.27.75/live/test";
videoCaptureCore.start();

The above code encountered an error while pushing streams to the RTMP service
The following is the debug error log:

2025-01-21 14:52:38.124 +08:00 [Debug] [VideoCaptureCore][CaptureMain] Starting graph...Done.
2025-01-21 14:52:38.259 +08:00 [Error] [DSFFMPEGEXEPipeOutput][videoConv_LogReceived] [h264_qsv encoder @ 0000026251C9F040] [Eval @ 000000C0F1F6E260] Undefined constant or missing '(' in '$0'
2025-01-21 14:52:38.263 +08:00 [Error] [FFMpegConverter][Invoke] [h264_qsv encoder @ 0000026251C9F040] [Eval @ 000000C0F1F6E260] Undefined constant or missing '(' in '$0' (exit code: 1)
2025-01-21 14:52:38.275 +08:00 [Error] [DSFFMPEGEXEPipeOutput][StartBeforeRun] Write to pipe failed (0): System.IO.IOException: 管道已中断。
在 System.IO.Pipes.PipeStream.WinIOError(Int32 errorCode)
在 System.IO.Pipes.PipeStream.EndWrite(IAsyncResult asyncResult)
在 System.IO.Pipes.PipeStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
在 VisioForge.Core.DirectShow.Classes.DSFFMPEGEXEPipeOutput.<StartBeforeRun>b__24_2()
2025-01-21 14:52:38.569 +08:00 [Error] [DSFFMPEGEXEPipeOutput][StartBeforeRun] FFMPEG start error: VisioForge.Core.FFMPEGEXEv2.FFMpegException: [h264_qsv encoder @ 0000026251C9F040] [Eval @ 000000C0F1F6E260] Undefined constant or missing '(' in '$0' (exit code: 1)
在 VisioForge.Core.FFMPEGEXEv2.FFMpegConverter.Invoke(String ffmpegArgs)
在 VisioForge.Core.DirectShow.Classes.DSFFMPEGEXEPipeOutput.<StartBeforeRun>b__24_0()
2025-01-21 14:52:38.620 +08:00 [Error] [DSFFMPEGEXEPipeOutput][videoConv_LogReceived] [h264_qsv encoder @ 0000026251C9F040] Unable to parse option value "$0"
2025-01-21 14:52:38.650 +08:00 [Error] [DSFFMPEGEXEPipeOutput][videoConv_LogReceived] [h264_qsv encoder @ 0000026251C9F040] Error setting option look_ahead_depth to value $0.
2025-01-21 14:52:38.660 +08:00 [Error] [DSFFMPEGEXEPipeOutput][videoConv_LogReceived] Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height


How should I use this SDK?
Reply
3 Answers
Jan 21, 2025
Roman Miniailov agent wrote
Hi

Let me check.
Jan 21, 2025
Roman Miniailov agent wrote
Please update SDK to v2025.1.11 or above.

We've resolved an "$" in the parameter for the QSV H264 encoder.

In your code, fill in the profile for FLV used for RTMP streaming, not for MP4.

ffmpegOutput.FillDefaults(DefaultsProfile.FLV_H264_AAC, true);


Jan 21, 2025
test wrote
Since updating the SDK to v2025.1.11, the stream has been successfully pushed to the server.

Thank you for your help.