是否可以使用 libvlcsharp 将动态 marq 文本和徽标设置到视频流录制中?
Is it possible to set dynamic marq text and logo into a video stream recording using libvlcsharp?
大家好,
我有一个问题,也许有人可以就如何实施或什至可能提供一些有用的想法:
我想从 IP 摄像机录制 RTSP 流,我想在录制中添加一些文本信息和徽标,以便在播放时可以查看。
为此,我首先创建了一个 MediaPlayer 元素来连接到 IP-cam,复制到显示器上,并通过 UDP 重播。
using (var stream01_view = new Media(libVLC, "rtsp://192.168.10.214:5554",FromType.FromLocation))
{
stream01_view.AddOption(
":sout=#duplicate{" +
"dst=display{noaudio}," +
"dst=std{access=udp,mux=ts,dst=:1234}");
stream01_view.AddOption(":sout-keep");
player.Play(stream01_view);
}
第二个流连接到本地 UDP 转换并输出到文件
using (var stream01_record = new Media(libVLC, "udp://@:1234", FromType.FromLocation))
{
stream01_record.AddOption(":sout=#transcode{sfilter=marq}:file{mux=ts,dst=VideoMarqLogo.mp4}");
stream01_record.AddOption(":sout-keep");
recorder.Play(stream01_record);
}
调用 class MediaPlayer
方法 SetMarqueeInt
和 SetMarqueeString
没有给出预期的结果。
感谢mfkl指出正确的方向。
所以解决问题的方法是:
stream01_record.AddOption(":sout=#transcode{ vcodec=h264, scale=0.75, " +
"sfilter=marq{file='marq.txt',position=9}," +
"vfilter=logo{file='logo.png',position=6}}" +
":file{mux=ts,dst=VideoMarqLogo.mp4}");
虽然有点警告,但这段代码 CPU 密集。
我想知道是否有办法使用 GPU 编码来做到这一点。
大家好,
我有一个问题,也许有人可以就如何实施或什至可能提供一些有用的想法:
我想从 IP 摄像机录制 RTSP 流,我想在录制中添加一些文本信息和徽标,以便在播放时可以查看。
为此,我首先创建了一个 MediaPlayer 元素来连接到 IP-cam,复制到显示器上,并通过 UDP 重播。
using (var stream01_view = new Media(libVLC, "rtsp://192.168.10.214:5554",FromType.FromLocation))
{
stream01_view.AddOption(
":sout=#duplicate{" +
"dst=display{noaudio}," +
"dst=std{access=udp,mux=ts,dst=:1234}");
stream01_view.AddOption(":sout-keep");
player.Play(stream01_view);
}
第二个流连接到本地 UDP 转换并输出到文件
using (var stream01_record = new Media(libVLC, "udp://@:1234", FromType.FromLocation))
{
stream01_record.AddOption(":sout=#transcode{sfilter=marq}:file{mux=ts,dst=VideoMarqLogo.mp4}");
stream01_record.AddOption(":sout-keep");
recorder.Play(stream01_record);
}
调用 class MediaPlayer
方法 SetMarqueeInt
和 SetMarqueeString
没有给出预期的结果。
感谢mfkl指出正确的方向。 所以解决问题的方法是:
stream01_record.AddOption(":sout=#transcode{ vcodec=h264, scale=0.75, " +
"sfilter=marq{file='marq.txt',position=9}," +
"vfilter=logo{file='logo.png',position=6}}" +
":file{mux=ts,dst=VideoMarqLogo.mp4}");
虽然有点警告,但这段代码 CPU 密集。
我想知道是否有办法使用 GPU 编码来做到这一点。