gpt4 book ai didi

C# 使用 NReco FFMpegConverter 进行实时视频截图

转载 作者:行者123 更新时间:2023-12-04 23:16:54 26 4
gpt4 key购买 nike

我有一个作为 Azure Web 角色运行的应用程序,我想在 Wowza 服务器上截取实时 RTSP 视频流的屏幕截图。我正在使用 NReco FFMpegConverter 包装器。我遇到了一致性问题。有时代码根本不执行,有时会立即执行,有时需要 2-3 分钟才能创建屏幕截图。我已经在静态(非现场)mp4 视频上对此进行了测试,并且一切都完美地执行(在 1-2 秒内)。

Stream thumb1 = new System.IO.MemoryStream();

var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
ffMpeg.GetVideoThumbnail("rtsp://99.99.99.99:1935/streamurl", thumb1);

//Code to upload file to blob storage
blob = testContainer.GetBlockBlobReference("test.jpg");

thumb1.Seek(0, SeekOrigin.Begin);
blob.Properties.ContentType = "image/jpg";
blob.UploadFromStream(s);

我在执行失败期间得到的错误是“输出文件 #0 不包含任何流”。我真的很好奇为什么有时需要 2-3 分钟才能获得输出屏幕截图,而其他时候只需几秒钟。寻找有关如何改进此方法并仍然使用 C# NReco 包装器的任何建议。

谢谢!

最佳答案

您似乎正在尝试从实时流中获取缩略图,并且 GetVideoThumbnail 方法等待输入以提取视频流的第一帧。也许您的实时流很难从 Azure WebRole 实例访问(甚至根本不可用)。 VideoConverter 在内部使用 ffmpeg,您可以通过使用远程桌面连接到 WebRole 实例并从命令行执行 ffmpeg 来检查它的执行情况:

ffmpeg -i rtsp://99.99.99.99:1935/streamurl -vframes 1 -r 1 -t 1 -f mjpeg thumb.jpg

关于C# 使用 NReco FFMpegConverter 进行实时视频截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26967184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com