![](/img/trans.png)
[英]Unable to flush buffer data to disk when using FFmpeg and avio library to write a mp4 video file
[英]Resolution Issue when create .mp4 video file from camera streaming using SourceReader
我正在使用SourceReader技术开发Window Desktop Camera应用程序。我已经完成了视频流传输并仍然捕获。
现在,我正在努力从USB摄像机捕获.mp4视频文件。 我能够捕获以下分辨率的视频文件:640 x 480,1280 x 720和1920 X1080。将视频分辨率更改为高于1920 x 1080并为IMFSinkWriter对象调用SetInputMediaType返回HRESULT时遇到了问题。错误代码0xc00d36b。
我使用视频子类型进行编码:MFVideoFormat_H264
除MFVideoFormat_H264之外,还有其他可用于编码.mp4文件的子类型吗?
为什么无法捕获高于FULL HD分辨率的.mp4文件? 我是否缺少任何编码视频文件的内容? 如果是,请向我提供一些解决此问题的指南。
提前致谢。
可能的瓶颈是视频编码器支持的最大分辨率。 大概您将编码器作为Sink Writer的一部分隐式使用。 Sink Writer本身并不限制分辨率,但是如果编码器无法处理特定的媒体类型,则无法进行编码。 具体来说,在Windows 7中,分辨率(或可能)限制为1920x1088。
此外,您从错误代码中丢失了一位数字。
也可以看看:
罗曼给出了一个很好的答案,但只是增加了其他编解码器的主题-如果您在MSDN上检查MPEG-4 File Sink ,您会发现它也提到了MJPG支持(即使不清楚它是否仅可用于Windows 8或它,只是在Windows 8中得到了改进),因此您也应该能够使用MFVideoFormat_MJPG
。 我认为不应有任何大小限制,但是生成的.mp4文件的大小当然会急剧增加。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.