我有一个作为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包装器的建议。
谢谢!
发布于 2014-11-21 15:41:45
你似乎正在尝试从直播流中获取缩略图,而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.jpghttps://stackoverflow.com/questions/26967184
复制相似问题