如何在windows中以编程方式确定视频尺寸
我正在尝试向正在编写的程序中添加一个功能,以确定视频文件的宽度和高度(可以使用browse..按钮选择)。我正在使用Python和Qt,我已经到处找了,似乎找不到任何帮助。视频格式目前为.flv,但将来将扩展为包括H.264等其他格式 如果我右键单击文件并选择“属性”,然后选择“摘要”选项卡并单击“高级”,Windows资源管理器可以告诉我视频尺寸。那里显示的宽度和高度正是我所需要的 有什么想法吗 谢谢如何在windows中以编程方式确定视频尺寸,windows,video,Windows,Video,我正在尝试向正在编写的程序中添加一个功能,以确定视频文件的宽度和高度(可以使用browse..按钮选择)。我正在使用Python和Qt,我已经到处找了,似乎找不到任何帮助。视频格式目前为.flv,但将来将扩展为包括H.264等其他格式 如果我右键单击文件并选择“属性”,然后选择“摘要”选项卡并单击“高级”,Windows资源管理器可以告诉我视频尺寸。那里显示的宽度和高度正是我所需要的 有什么想法吗 谢谢 MarlonWindows资源管理器读取此信息的文件头 我看到3种选择: 您可以手动解析标
MarlonWindows资源管理器读取此信息的文件头 我看到3种选择:
- 您可以手动解析标头以查找元数据信息(哦,天哪,请不要这样做)
- 使用cmd行工具并解析它的输出(检查以了解如何操作)
- 使用第三方库从视频文件中检索相关信息
//注册所有格式和编解码器
av_寄存器_all();
//打开视频文件
如果(av打开输入文件(&pFormatCtx,argv[1],NULL,0,NULL)!=0)
返回-1;//无法打开文件
//检索流信息
如果(av)查找流信息(pFormatCtx)流[视频流]->编解码器;
//此处的相关结构为:pCodecCtx
//更精确地说:pCodecCtx->宽度和pCodecCtx->高度
// Register all formats and codecs
av_register_all();
// Open video file
if(av_open_input_file(&pFormatCtx, argv[1], NULL, 0, NULL)!=0)
return -1; // Couldn't open file
// Retrieve stream information
if(av_find_stream_info(pFormatCtx)<0)
return -1; // Couldn't find stream information
// Find the first video stream
videoStream=-1;
for(i=0; i<pFormatCtx->nb_streams; i++)
if(pFormatCtx->streams[i]->codec->codec_type==CODEC_TYPE_VIDEO) {
videoStream=i;
break;
}
if(videoStream==-1)
return -1; // Didn't find a video stream
// Get a pointer to the codec context for the video stream
pCodecCtx=pFormatCtx->streams[videoStream]->codec;
// The relevant structure here is: pCodecCtx
// More precisely: pCodecCtx->width and pCodecCtx->height