从VOB(DVD)文件中提取帧
我需要从视频文件中生成缩略图,我使用imediadet从视频中获取框架,它不适用于(*.vob)文件DVD,我如何从c#中的dvd获得缩略图. . 解决方案 尚不清楚您是否正在使用未加密的DVD.为了这个答案,我要假设您是. imediadet使用样本抓滤器进行执行大部分操作.不幸的是,样本抓手不支持 >格式为我确实知道Elecard的MPEG-2解码器可用
20 2024-04-26
编程技术问答社区
制作交错的视频帧
我正在开发一个简单的电视角色生成器软件.我需要捕获一个窗口,并实时在视频卡缓冲区上写上像素. (窗口有一些动画,视频和文字.) 现在,它适用于渐进格式,但我的问题是交错的输出.(PAL 720x576i格式) 我认为我应该做以下步骤使每个交叉框架: 1-作为图像 捕获time1中的窗口 2-提取field1(甚至字段) 3-捕获时间2作为图像 捕获窗口 4-提取field2(奇数) 5-集成field1和field2以获取frame1 (如果我错了,请纠正我.) 所以,我需要从图像中制作字段以获取交织帧. 注意:我知道有些工具可以做到,但是我想自己实施. 在 解决方案 我找到了有关Interleave视频和视频字段的最佳文章. 所有关于视频字段. 感谢Chris Pirazzi.
12 2024-04-26
编程技术问答社区
在C#中为电影视频添加水印
我使用C#在图像上应用了水印.现在,我想使用C#在视频上添加徽标或水印. 任何人都可以提出一些实现这一目标的方法. 任何帮助都将是非常明显的. 解决方案 如果可以使用FFMPEG,则可以使用这样的命令将其添加到ffmpeg的覆盖层: ffmpeg -i inputVideo.mp4 -i yourwatermark.png -filter_complex "overlay=5:5" -codec:a copy outputVideo.mp4 有关放置水印的更多示例 - 即左上,右下等: https://stackover.com/A/10920872/334402 在许多环境中使用ffmpeg通常是通过支持良好的包装库来完成的 - 这是一个首先使用自制包装器的人(在不同的环境中 - 不是C#),但希望我使用库! 但是,C#似乎没有得到良好支持的FFMPEG包装器,因此看来您需要使用" New Process()"自己执行FFMPEG程序.此答案中
26 2024-04-26
编程技术问答社区
如何改进我的代码以使视频质量更好?
我正在使用以下代码来利用Windows Media编码器记录屏幕.我正在使用Windows Vista,屏幕分辨率1024×768,32位.我的问题是,可以成功录制视频,但是当我播放录制视频时,视频的质量不是很好 - 例如角色非常晦涩.我想知道我应该尝试调整哪些参数以获取录音机视频的更好质量? 我的代码, static WMEncoder encoder = new WMEncoder(); IWMEncSourceGroup SrcGrp; IWMEncSourceGroupCollection SrcGrpColl; SrcGrpColl = encoder.SourceGroupCollection; SrcGrp = (IWMEncSourceGroup)SrcGrpColl.Add("SG_1"); IWMEncVide
24 2024-04-26
编程技术问答社区
如何从mp4,m3u8或任何其他文件中获取视频时长
我发现nreco.videoinfo库是最佳选择,更简单 1]在Nuget软件包管理器中找到NRECO.VIDEOINFO库,然后将其导入您的项目 2]导入命名空间"使用nreco.videoinfo" 3]将以下代码行添加到方法中. var ffProbe = new FFProbe(); var videoInfo = ffProbe.GetMediaInfo(blob.Uri.AbsoluteUri); return videoInfo.Duration.TotalMilliseconds; 在这里您可以查看其他选项 解决方案 为什么不使用Windows Media Player解决此问题? using WMPLib; public Double getDuration(String path) { WindowsMediaPlayer wmp = new WindowsMediaPlayerClass(); IWMPMe
22 2024-04-26
编程技术问答社区
使用FFMpegConverter进行C#视频连接
我需要在我的ASP.NET Web API中实现视频串联.我可以使用" FFMPEGConverter" Nuget软件包成功地加入一些从Internet下载的示例视频.但是,当我尝试从移动设备捕获的连接文件并尝试打开它时,我会收到以下错误. 下面是我正在使用的代码段: var ffMpeg = new NReco.VideoConverter.FFMpegConverter(); ffMpeg.ConcatMedia(_fileNames, videoRootPath.mp4, NReco.VideoConverter.Format.mp4, set); 这些是两个MP4文件的属性屏幕截图. 预先感谢 解决方案 我通过对代码进行以下更改 获得了正确的输出 var ffMpeg = new NReco.VideoConverter.FFMpegConverter(); NReco
16 2024-04-26
编程技术问答社区
如何使用脚本或代码来控制媒体播放器
是否有媒体播放器,您可以在其中使用脚本或代码来控制其音频和视频.例如,我想在N SEC之后暂停视频,哪个播放器支持此?我正在寻找在桌面上运行的免费OpenSource解决方案,即Windows 7. 解决方案 我不是提供整个解决方案的那种.但这是一个很好的起点.它显示了如何以Windows表单嵌入Windows Media Player. 您可以访问诸如播放,停止等之类的控件 其他解决方案 videolan 支持使用此类用途. 例如,请参阅此处: http://wwww.videolan. org/doc/play-howto/en/ch04.html 从链接: - Extraintf允许您选择除主模块外还将启动的额外接口模块.这主要用于特殊控制接口,例如HTTP,RC(遥控器),...(见下文) rc接口可能是纯净的代码/脚本 - 视图. 使用网页将HTTP接口针对人类,但也可以从代码控制.
22 2024-04-26
编程技术问答社区
使用DirectShow在同一时间进行视频录制和播放
我应该开发一个应用程序,该应用程序在录制继续(而无需停止图)时录制并播放录制的视频.我知道如何使用DirectShow使用和开发图形的体系结构.我应该使用什么过滤器? 我使用directShow和 samplegrabber ,但我应该压缩视频,我不知道如何在压缩视频文件中进行操作(因为录制是否继续). 我认为MPEG-2录制是我的应用程序的最佳方法,但请指导我要使用的过滤器. 谢谢 解决方案 您是否尝试过 streambufferengine ? 记录文件并同时观看它有点问题,因为Demuxer需要重新填充书面文件,以了解新部分.我从来没有见过一个魔鬼. 另一个大问题是文件锁! DirectShow Filewriter和大多数其他类似的过滤器将文件锁定.因此,没有其他过程可以打开读取文件. 您正在搜索一个时空系统.为此有一些Thirt Party SDK.但是它也可以通过自己的直接滤波器来实现,但是为此,您需要大量的时间和知识.我知道这是可
24 2024-04-26
编程技术问答社区
复制音频编解码器在转码mxf视频文件时出现异常
我们正在使用Azure Media Services(MES处理器)将各种输入格式的视频文件转成MP4输出格式. 如果我们有一个MXF输入文件,则在尝试转码视频时会收到以下异常(copyAudio选项) Azure Media ReEncode error message: An error has occurred. Stage: ApplyEncodeCommand. Code: 0x00000001. 此例外消息是相当通用的,并且对此原因没有太多见解. 任何想法如何保持原始音频,而仅转码视频就非常感谢. 配置: { "Version": 1.0, "Sources": null, "Codecs": [ { "Type": "H264Video", "KeyFrameInterval": "00:00:02", "SceneChangeDetection
14 2024-04-26
编程技术问答社区
以编程方式向视频流添加AVI文件头
我有一个捕获设备(数字转换器的类似物:Avermedia USB捕获卡). 当我想使用C#中的DirectShowlib录制视频时,我只会收到帧.我能够使用RawVideo播放器录制帧并播放文件.如何创建像AVI这样的标准视频文件标头?当我想压缩数据时,就会发生第二个问题.当我使用压缩时,我根本无法阅读. 这是我的工作图形架构: 如何使用标题等创建标准AVI或MPEG文件? 解决方案 可播放的文件具有某些结构,并且捕获的数据通常通过所谓的多路复用器过滤器写入该文件.对于AVI格式,标准过滤器为 Avi Mux过滤器.它在输入上使用视频/音频,并将输出的文件转换为兼容文件的流.如果/当此输出连接到文件作者过滤器时,后者将使用适当的标头产生文件. 其他解决方案 看看
16 2024-04-25
编程技术问答社区
C#如何读取视频文件的ID3标签等内容
我想知道是否在那里阅读视频文件之类的ID3标签? 苏丹 解决方案 查看Taglibsharp linuxpackages/opensuse11.1/taglib-sharp.html 其他解决方案 尝试使用taglib-sharp.dll可能会有所帮助.
14 2024-04-25
编程技术问答社区
C#中的视频预览
我有一个网络摄像头捕获应用程序,我正在尝试在WPF UI中实现视频预览.捕获发生在C ++ DLL中.我有一个目前的解决方案,但对此我不太满意.主要目标是UI中的视频预览不会干扰C ++ DLL,因为它必须压缩视频帧并将其写入磁盘.我将无法显示每个帧,因为压缩是相当密集的. 我当前的视频预览解决方案是: 我的窗口中使用了一个图像控件,其源属性是数据示为bitmapsource,称为VideopReviewSource 我设置了一个system.threading.timercallback以更新我的预览.计时器回调函数派遣到可以更新UI的线程(使用this.dispatcher.begininvoke),该线程调用UpdatePreview() updatePreview()向视频框架询问C ++ DLL.对DLL的调用将图像的原始数据放入字节[] _rawimagedata中,我一次将其分配在窗口的构造函数中. updatePreview()然后将Vide
18 2024-04-25
编程技术问答社区
上传时从视频中抓取一个缩略图。(Azure Blob Storage)
我目前有一个将视频上传到Azure Blob存储的系统,并且正常运行.我想实现一项功能,该功能在上传时从视频中获取缩略图并将其推到Azure. 我尝试使用它: new FFMpegConverter().GetVideoThumbnail(file, outputJPEG); 问题是,我不确定该用作outputjpeg是什么,因为我没有写的文件,而是想将该文件写入Azure的Blob存储. 任何人都可以帮助我找出这个问题,还是建议另一种方法? 我尝试过: 创建一个新的,空的httppostedfilebase作为outputjpeg文件,但这是不可能的,因为它只接受用户上传的文件. 使用FileStream,但这似乎不起作用,因为它需要它编写的文件的位置,而不是让我将其推入Blob存储. (通过:blob.uploadfromstream(file.inputstream);) 事先感谢您的任何帮助! 解决方案 看起来有一个替代流,因
10 2024-04-25
编程技术问答社区
Activemovie窗口弹出 Microsoft.DirectX.AudioVideoPlayback in C#
我创建了一个简单的Windows表单,该表单使用Microsoft.directx.audiovideoplayback显示视频.当视频加载到面板上时,它会弹出一个毫秒的ActiveMovie窗口.我如何修复它,因为每次开始播放视频都会抛出这个ActiveMovie窗口.就像应用程序有延迟一样. 这是我的代码: string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Photos\test.avi"); var ofd = path; var video = new Video(ofd, true); label3.Text = ofd; video.Owner = panel2; panel2.Size = new System.Drawing.Size(640,480); video.Ending
26 2024-04-25
编程技术问答社区
如何将一个视频转换为一个位图阵列?
我希望能够加载视频并在上面运行位图操作. 我如何将整个视频放在内存中,或者逐帧获取位图,操纵它们,然后保存到另一个流或其他流程. 谢谢! 解决方案 导出是否必须在C#中?如果不是,则应使用ffmpeg(http://www.ffmpeg.org/). 这是一个类似的问题: http://ubuntuforums.org/showthread.php?/p> 我对FFMPEG的结果很好. 其他解决方案 也许这链接可以帮助您. 工作方式以从C# 如何将视频转换为c# http://social.msdn.microsoft.com/forums/en-us/mediafoundationdevelopment/thread/7cf7014e-6537-6537-480b-a052-65cbb92929f449
20 2024-04-25
编程技术问答社区
如何使用C#获取视频文件的持续时间?
C#中的任何库可以让我这样做? 解决方案 http://johndyer.name/post/2005/07/22/retreiving-the-duration-of-a-wmv-in-c.aspx using WMPLib; // this file is called Interop.WMPLib.dll WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass(); IWMPMedia mediaInfo = wmp.newMedia("myfile.wmv"); // write duration Console.WriteLine("Duration = " + mediaInfo.duration); // write named attributes for (int i=0; i
16 2024-04-25
编程技术问答社区
C#中的单张图片到视频
我一直在使用Aforge来操纵图像,现在我需要将单个图像转换为视频.我有效的代码,但是一旦添加图像路径,它就会输出一个空视频.我猜是非常简单的事情,但是由于我对C#一无所知,所以我需要每个过程的每个步骤. 有人可以帮我吗? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Windows.Forms; using AForge; using AForge.Video.FFMPEG; namespace VideoWriter { public partial
14 2024-04-25
编程技术问答社区
以编程方式获得视频持续时间
我需要获取MP4视频的视频持续时间(视频格式AVC) 我正在使用DirectShowlib 2.1 我下载了几个编解码器,但我仍获取代码-2147220891(我不知道这意味着什么的错误代码) graphBuilder.RenderFile(filePath, null); 任何想法如何获得这种视频的持续时间? 解决方案 -2147220891在十六进制中为0x80040265.搜索该错误代码显示此线程 0x80040265并不是真正的"未知".严格来说,它是vfw_e_unsupported_stream,这意味着您的AVI文件至少包含一个流(例如,视频),您没有正确的编解码器. . 因此,您似乎还没有找到正确的编解码器. 该文件在Windows Media Player或VLC中播放(例如)? 其他解决方案 如果您只需要文件的持续时间,则可以尝试使用IMediadet.我在这里有一个用法的示例: Sourcecontrol/chan
14 2024-04-25
编程技术问答社区
Xamarin Android C# 视频调整大小
我需要将视频发送到服务器. 视频尺寸随机不同,有些可以是MEG,而另一些则可以是900MB. 如何将视频大小调整到较小的尺寸? 我可以获取iOS示例,但没有找到任何Android版本. 解决方案 其中很多取决于您的含义使其较小: 修剪视频的长度(运行时间) 更改播放率(FPS) 调整到较小的分辨率 将比特率更改为较低的 使用其他编解码器或同一编解码器重新压缩/转编码视频,但使用较高的压缩比. Android的MediaCodec库可以更改许多事情,但并不能在"如何"上为用户提供很多选项: 分辨率1080p,720p,480p,360p,QVGA,QCIF 比特率2Mbps,1Mbps,500kbps,56kbps framerates = 30fps. 15fps frameintervals = 1,5,10 (这只是MediaCodec能力的快速采样) mediaCodec用法: 使用Android MediaCodec
16 2024-04-24
编程技术问答社区