2011-04-08 9 views
0

비디오 파일의 너비와 높이 (찾아보기 단추로 선택할 수 있음)를 결정하는 프로그램에 기능을 추가하려고합니다. 저는 파이썬과 Qt를 사용하고 있습니다. 저는 이걸 보았고 이것에 대한 도움을 찾을 수없는 것 같습니다. 비디오 형식은 현재 .flv이지만 H.264와 같은 다른 형식을 포함하도록 앞으로 확장 될 예정입니다.프로그래밍 방식으로 Windows에서 비디오 크기를 결정하는 방법

파일을 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 요약 탭을 선택하고 고급을 클릭하면 Windows 탐색기에서 비디오 크기를 알 수 있습니다. 거기에 표시된 너비와 높이가 정확히 내가 원하는 것입니다.

아이디어가 있으십니까?

감사

말론

답변

2

Windows 탐색기에서이 정보를 파일 헤더를 읽습니다.

  • 는 출력의 (popen()을 확인 cmd를 줄 도구를 사용하여 구문 분석 (신 아,하지 마십시오) 수동으로 메타 데이터 정보를 찾고 헤더를 구문 분석 할 수

    • :

      나는 3 옵션을 참조하십시오

    • 난 당신이 쉽게 일을 할 있으리라 믿고있어 비디오 파일

    에서 관련 정보를 검색하기 위해 제 3 자 라이브러리를 사용하여) 그렇게하는 방법을 알고 있습니다. 나는 비디오 파일에 정보를 표시하고 비디오 속성을 캡처하는 출력을 파싱하기위한 mediainfo 같은 cmd-line 도구 주위에 래퍼를 작성하는 것이 더 쉬울 것이라고 생각합니다. 시스템에 이미 ffmpeg이 설치되어 있다면 함께 할 수 있습니다.

    또 다른 방법은 비디오 속성을 읽는 libavformat (ffmpeg의 일부)과 같은 타사 라이브러리를 사용하는 것입니다. 데모 전체를 보려면 tutorial01.c을보십시오.

    // 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 
    
  • 관련 문제