我试图开始捕获网络摄像头,将其转换并输出到RTSP
,但当我查看: rtsp://127.0.0.1:53211时,我无法查看该流。
我在我的VLC播放器上看到一个日志,上面写着:
Your input can't be opened:
VLC is unable to open the MRL 'rtsp://127.0.0.1:53211'. Check the log for Your input can't be opened:
VLC is unable to open the MRL 'rtsp://127.0.0.1:53211'. Check the log for details.
我没有看到任何日志在C#方面,我看到我的摄像头亮起来,所以我认为它正在访问网络摄像头。
using System;
using LibVLCSharp.Shared;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Core.Initialize();
using var libVlc = new LibVLC();
using var mediaPlayer = new MediaPlayer(libVlc);
mediaPlayer.EndReached += (_, x) =>
{
Environment.Exit(1);
};
var media = new Media(libVlc, "v4l2:///dev/video0", FromType.FromLocation);
media.AddOption(":v4l2-standard=ALL :live-caching=300");
media.AddOption(":chroma=mp2v --v4l2-width 1280 --v4l2-height 720");
media.AddOption(":sout=#transcode{vcodec=mp2v,acodec=mpga,fps=30}:rtp{mux=ts,sdp=rtsp://:53211}");
media.AddOption(":sout-keep");
mediaPlayer.Play(media);
Console.ReadKey();
}
}
}
发布于 2021-10-08 03:47:54
有两个错误:
无声错误。
media.AddOption(":v4l2-standard=ALL :live-caching=300");
结尾处的路径。
media.AddOption(":sout=#transcode{vcodec=mp2v,acodec=mpga,fps=30}:rtp{mux=ts,sdp=rtsp://:53211}");
C#中的解决方案:
var media = new Media(libVlc, "v4l2:///dev/video0", FromType.FromLocation);
media.AddOption(":chroma=mp2v --v4l2-width 1280 --v4l2-height 720");
media.AddOption($"::sout='#transcode{{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}}:rtp{{sdp=rtsp://{GetLocalIPAddress()}:53211/live.sdp}}'");
media.AddOption(":no-sout-all");
media.AddOption(":sout-keep");
命令行:
cvlc v4l2:///dev/video0:chroma=mp2v --v4l2-width 1280 --v4l2-height 720 --sout '#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:rtp{sdp=rtsp://192.168.0.107:53211/live.sdp,proto=tcp}' :no-sout-all :sout-keep
https://stackoverflow.com/questions/69485916
复制相似问题