使用Windows Media Foundation创建NV12编码视频
我正在学习使用此教程使用Windows Media Foundation使用此教程 http://blogs.msdn.com/b/eternalcoding/archive/archive/Archive/2013/03/03/06/developing-a-winrt-component-to-a-a-a-a-video-file-used-media-foundation.aspx 我能够创建上述链接中显示的RGB编码的WMV视频.但是我需要从图像中以NV12格式创建YUV编码的MP4视频.由于NV12使用(W x H x 3/2)为每个帧的内存缓冲区字节,因此我创建了用于图像缓冲区的缓冲区(w x H x 3/2)字节(教程中的可变'target'),并设置了一些固定的值为图像数据.然后将图像步幅设置为MFCopyImage()(ARGB使用WX4作为步幅),并将高度设置为" H".但这似乎不起作用. MF_MT_SUBTYPE设置为MFVIDEOFORMAT_NV12.
0 2023-12-08
编程技术问答社区
如何在WinRT中播放D盘的视频文件?
在Windows" Metro"应用中使用XAML C#我如何播放某个视频文件.示例: d:\ video1.wmv \\ Mediapc \ video2.wmv 我设法实现此操作的唯一方法是使用filepicker,但我不想使用它,因为我已经有一个要播放的文件列表. 我试图使用getfileFrompathAsync,但我继续获得权限/访问问题 await StorageFile.GetFileFromPathAsync(@"D:\video1.wmv"); 很抱歉,如果回答了,我只是找不到适合我问题的答案. 解决方案 如果您的D:\ Drive是非网络资源,请尝试添加可移动的存储应用程序功能.这可以通过双击软件包来完成.AppXManifest并导航到功能选项卡.默认情况下,您的应用程序(假设它是Windows Store应用程序)只能访问与您的应用程序包装的本地文件或存储在本地/漫游/temp文件夹中的文件(通常为应用程序状态保留).
0 2023-12-08
编程技术问答社区
从CaptureElement和MediaCapture执行实时视频流处理
在我的Windows 8商店应用程序中,我倾向于执行实时视频流处理(例如面部检测). 技术1 在我以前的Windows 7应用程序中,我能够使用以下技术(使用emgu cv(openCv in .net)和wpf )在C#中进行相机面部检测,以执行实时视频处理.该技术是具有固定时期计时器回调的,可以从相机对象. 积极查询图像缓冲区 void timer_Tick(object sender, EventArgs e) { Image currentFrame = capture.QueryFrame(); // Perform image processing based on currentFrame 技术2 我以前在 Android 就是Android 就是Android 就是,我将在相机本身上安装相机缓冲区预览回调. 通过沿捕获的摄像头缓冲区传递,相机将定期触发回调.从那里,我可以执行图像处理. public ab
0 2023-12-08
编程技术问答社区
用前置摄像头记录视频-WP8-C#
我的Windows Phone应用需要从Front-Mamera录制视频,并通过WebService将其发送到服务器. 在这里,当我尝试从front-camera中录制视频时,我得到了mirror inverted video.是指前置摄像机记录180度旋转视频. 我认为唯一的解决方案是将录制的视频流旋转到180度. 问题: 还有其他解决方案可以通过wp8>? 录制正确的视频 如果没有,如何旋转视频流180度?任何c# API都可以做到..? 编辑: 这是我正在使用的代码: VideoBrush 的XAML代码
0 2023-12-08
编程技术问答社区
在Windows Phone 8中使用AudioVideoCaptureDevice显示当前视频?
我设法为Windows Phone 8应用程序设置了代码,该应用程序可以使用AudiovideCapturedevice来初始化/停止录制视频. (将其保存到irandomaccessstream中) //Initialize Camera Recording Windows.Foundation.Size resolution = new Windows.Foundation.Size(640, 480); captureDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, resolution); captureDevice.VideoEncodingFormat = CameraCaptureVideoFormat.H264; captureDevice.AudioEncodingFormat = CameraCaptureAudioFormat.Aac; captureDevi
0 2023-12-08
编程技术问答社区
Windows Phone 8 & Html5视频。是否可以在网页中在线播放视频?
我想播放一个嵌入在网页上的视频.但是,在Windows Phone上,首先没有播放视频,而是在网页上下载并播放.其次," canplaythrough"事件似乎没有开火? Your browser doesn't support html5 video 是否可以在WP8上播放HTML5视频,如果是这样,该怎么做? 解决方案 不幸的是,在wp8上不可能: : 与Windows 8的差异 Windows 8的Internet Explorer 10和Windows Phone Internet Explorer 10之间存在一
0 2023-12-08
编程技术问答社区
在Windows Phone 8中以编程方式下载媒体文件
我们的应用程序是基于视频/音频的应用程序,我们已将所有媒体上传到Windows Azure. 但是,需要促进用户按需下载音频/视频文件,以便他们可以在本地播放. 所以我需要以编程方式下载音频/视频文件并将其保存在孤立的storage中. 我们为每个音频/视频提供Windows Azure媒体文件访问URL.但是我被困在下载媒体文件的第一步. 我用Google搜索并遇到本文,但是对于WebClient,我可以使用downloadfileasync. 但是,我尝试了其其他函数下载stringasyn,并且下载媒体文件是字符串格式,但不知道如何将其转换为音频(WMA)/Video(MP4)格式.请建议我,我该如何继续?还有其他下载媒体文件的方法吗? 这是我使用的示例代码 private void ApplicationBarMenuItem_Click_1(object sender, EventArgs e) { WebCli
0 2023-12-08
编程技术问答社区
在Windows Phone 7上创建视频文件
是否可以在 Windows Phone 上创建编程性视频文件(e.g. .wmv, .avi, etc.)(合并BMP和.wav文件)? 我发现了很多第三方公用事业,但实际上它们是基于 c ++ ,并且在 Windows Phone Platform .. 非常感谢, 任何帮助将不胜感激. 解决方案 我不建议您走这条路线..手机是轻巧的设备.如果您想这样做,建议将它们上传并在其他地方进行.完成后,下载了结果. 其他解决方案 即使有可能,我也会质疑它在手机的添加性能中的有用性.在1-1.4GHz单核上编码视频并不是一个好主意.您将需要低级优化或硬件编码,这两者都无法使用. 其他解决方案 成像场景时,您编写原始视频以后端. 1帧约为1.5 MB,几秒钟内您将获得约100MB的上传. 移动数据连接(也不是移动)无法处理. 相反,客户端应预处理数据并将原始视频数据转换为直接在电话上紧凑视频文件(然后提交到服务器,例如持续存储).
0 2023-12-08
编程技术问答社区
Windows Phone 8媒体选择器(照片和视频)类似于Viber/WhatsApp
我一直在开发一个类似于其iOS和Android版本的应用程序,从媒体库/相机卷中选择了手机的视频.在Android和iOS中,这几乎没有问题,因为可以为这些平台选择媒体选择API. 对于我的情况是Windows Phone 8,我一直在网上搜索,甚至阅读有关媒体选择器的MSDN文档,您不仅可以选择照片,还可以在相机卷中选择视频,但是幸运的是我读过的.只有PhotoChooserTask可用,只能选择没有视频的照片. 试图找出是否确实有一个视频支持的媒体选择器时,我尝试查看Windows Phone 8的WhatsApp和Viber应用程序,令人惊讶的是,他们有此"选择媒体"选择器.他们的"媒体选择者"看起来几乎相同,并且具有选择视频的能力. 这些是Viber/WhatsApp的"选择媒体"选择器的屏幕截图: WhatsApp的"选择媒体" Viber的"选择媒体" 我的问题是哪种类型的控件/选择器API是?还是像第三方付费图书馆一样?还是开源的?搜寻了
0 2023-12-08
编程技术问答社区
压缩AVI视频中的帧
我已经构建了一个Windows Phone类,将一些可文化的标签转换为AVI全帧(未压缩).视频真的很大.是否存在一个简单的编解码器实现,例如仅zip映像的编解码器,或者是制作下一个/上一个XOR的东西,然后在JPEG中sip sip? Windows Phone不允许任何不安全的代码,并且大多数DLL不能包装到C#WP库中.因此,这就是为什么我要从头开始编码一些内容.请注意,与研究C ++现有资源(我不是C ++编码器)相比,我在从头开始编码的效率更高,因此,我正在搜索的内容是在不编写100000行的情况下可以实现的压缩AVI格式的信息.我使用了AVI,因为这些规格很简单. [编辑] 我发现了一些非常有趣的东西在这里关于Codeproject,来自2004年的文章.这是将帧转换为MPEG-1的100%C源.可悲的是,这是我的框架,而不是p框架,因此文件比预期的MPEG-1平均文件大小大3倍. [编辑] 要描述更多我的项目,我要做的就是对捕获的电影应用一些影
0 2023-12-08
编程技术问答社区
如何为VLCJ添加或安装本机X64库?
我正在尝试在Java中制作一个带有视频播放器的Messenger程序,因此我正在使用VLCJ.但是我收到这个错误: 线程中的异常" main" java.lang.unsatisfiedlinkerror: 无法加载库" libvlc": 找不到指定的模块. 我遵循我在Windows 7 x64 ultimate上使用X64 VLC运行.我正在使用最新的Eclipse版本进行编码. 任何人都可以指导我如何解决此问题吗? 解决方案 您必须在应用程序中添加" libvlc"和" libvlccore" dll路径.这些将存在于您的VLC安装文件夹中.您可以添加以下代码行以使其正常工作. NativeLibrary.addSearchPath("libvlc", "C:/VideoLAN/VLC"); 在这里" C:/videolan/vlc"是VLC的安装文件夹. 其他解决方案 我阅读似乎 vlcj 库正在使用JNA,您可以使用该库搜索路径进行
0 2023-12-07
编程技术问答社区
Microsoft Media Foundation网络摄像头接口
我一直在使用Microsoft Media Foundation从所有类型的网络摄像头捕获来自所有类型的网络摄像头的图像.我已经有一些代码可以与几种类型的网络摄像头连接,并且能够以不同的分辨率和格式捕获图像. 我知道,在winxp下,可以使用直接显示库更改网络摄像头的不同参数(例如白平衡,曝光时间,例如曝光时间).不幸的是,直接节目库中的接口使您可以轻松地从网络摄像头捕获单个帧成为可能,从Win7下的直接秀中删除.有人知道如何使用Microsoft Media Foundation或任何其他可以与Microsoft Media Foundation结合的库来访问这些参数? 解决方案 DirectShow在Windows 7中仍然很好(最容易检查的是从Windows SDK使用GraphEdit和AMCap).然而,媒体基金会在较早版本的Windows中缺乏基本支持. 其他解决方案 可以从WMF调用直接归档QueryInterface方法.示例代码可在 Windows
0 2023-12-07
编程技术问答社区
Windows Media Foundation使用IMFTransform将mp4电影帧解码为2D纹理
我正在尝试使用Windows Media Foundation类分解MP4视频,并将框架转换为2D纹理,而DirectX着色器可以用于渲染.我已经能够使用 mfcreatesourcereaderfromurl 读取源流,并能够阅读该流的媒体类型,该流的主要类型 mfmediatype_video MFVIDEOFORMAT_H264 如预期的. 我现在需要将此格式转换为RGB格式,该格式可用于初始化D3D11_TEXTURE2D资源和资源视图,然后可以将其传递到HLSL像素阴影器进行采样.我使用 imftransform 类来为我进行转换很累,但是当我尝试将转换上的输出类型设置为任何MFVIDEOFORMAT_RGB变体时,我会遇到错误.我还尝试在源读取器上设置新的输出类型,而只是对希望获得正确格式的示例进行抽样,但我又没有运气. 所以我的问题是: 这种类型的转换是可能的吗? 可以通过Imftransform/soutcereader课程进行此操作,例如我上面的
0 2023-12-07
编程技术问答社区
在TCL8.0版本中,如何利用"&"命令使proc或exec命令在后台运行,即在windows7上并行运行?
我正在从事一个正在使用FFMPEG捕获视频的项目. FFMPEG命令是: ffmpeg -f dshow -t 00:00:10 -i "video=Integrated Webcam" -b 5000k -s 1280x720 c:/test/sample.avi 链接:exec myprog & 在这里他们尚未指定什么是myprog. 链接:在后台运行shell命令, tcl proc 使用命令: eval exec [linsert $args 0 exec] >> $tempFile & 在这里,命令不接受为eval和exec是一个接一个的,因此将exec作为变量. 帮助我,使用正确的命令,可以用TCL version 8.0和Windows 7在后台捕获我的视频. 解决方案 此行的问题: eval exec [linsert $args 0 exec] >> $tempFile & 是多重的.首先,您有一个双重exec
0 2023-12-07
编程技术问答社区
如何使我的C代码被Chrome浏览器识别为视频源/网络摄像头?
我正在处理与硬件(外部USB设备)交互的C代码,并在实时输出视频帧,该帧最终以DLL文件构建: int get_frame() { // interacts with hardware and // generates video frames } 是否有特定的功能在DLL中导出,以便可以在Chrome中用作视频源,如果是,如何将此DLL加载到Chrome中? 如何将此代码识别为Chrome中的视频源/网络摄像头,因此我可以将其集成到包含元素的HTML页面中? navigator.mediaDevices.getUserMedia({ video: true }).then(stream => { $("#cam").srcObject = stream; }); 链接主题: 编写虚拟网络摄像头?, 虚拟网络摄像头输入为字节流. 解决方案 浏览器上类似于本机的代码的标准指令集/二进制格式是WASM.当前,将C/C ++
0 2023-12-07
编程技术问答社区
如何改进我的代码以使视频质量更好?
我正在使用以下代码来利用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
0 2023-12-07
编程技术问答社区
DirectShow图表中的视频延迟
我看到了一个引人注目的视频,该视频正在导致所得的音频/视频同步,以获取我正在测试的捕获卡.我的图形拓扑如下. Video Source -> Sample Grabber -> Null Renderer Audio Source -> Sample Grabber -> Null Renderer 使用H264压缩视频的样本,并使用FAAC压缩音频.此拓扑和应用程序代码适用于我过去使用过的捕获卡.但是我看到了我正在测试的当前卡的延迟.自然,我认为这与卡本身有关.因此,我检查了一下,发现使用开放式广播员,VLC或GraphEdit中的同一图时,没有视频/音频desync使用此卡捕获. 这向我表明问题与我的构造方式有关.然后,我尝试使用IAMBufferNegotiation以及SetStreamSyncOffset进行调整缓冲尺寸. 如果我在视频上应用500毫秒的滞后(例如videoTimeStamp = videoTimeStamp - 500),同步几乎
0 2023-12-06
编程技术问答社区
如何将frontBuffer数据复制到纹理上 DirectX 9
我似乎找不到从我通过应用程序的前缓冲区数据获取的表面数据创建纹理的方法 这是我很确定正在工作的代码(直接x 9,c ++) // capture screen IDirect3DSurface9* pSurface; g_pd3dDevice->CreateOffscreenPlainSurface(640, 480, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &pSurface, NULL); g_pd3dDevice->GetFrontBufferData(0, pSurface); 现在我已经有了我的前巴夫达塔 此功能/ d3dxcreatextlexture fromFileinMemory/ 似乎是最合乎逻辑的,但似乎没有解决问题. 我很确定可以做到这一点,我不确定如何做到这一点.任何帮助将非常欢迎! 谢谢! 解决方案 最好使用GetRenderTargetData()而不是GetFrontBufferDa
0 2023-12-06
编程技术问答社区