Coder Social home page Coder Social logo

qiushenglu / hevcanalyzer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ximingcheng/hevcanalyzer

0.0 2.0 0.0 1019 KB

HEVC H.265 stream GUI Analyzer based on wxWidgets

Home Page: http://ximingcheng.github.io/HEVCAnalyzer

Makefile 0.39% C++ 97.57% C 2.04%

hevcanalyzer's Introduction

HEVCAnalyzer

Build Status

Win7 win32

Ubuntu ubuntu

Linux Mint (old version) mint

Introduction

HEVC/H.265 is the short name of the High Efficiency Video Coding which is a video compression standard developed by the ISO/IEC Moving Picture Experts Group (MPEG) and ITU-T Video Coding Experts Group (VCEG). The difference between H.264/AVC and HEVC video coding standard can be found here . As the performance of the new HEVC standard is much better than former H.264/AVC, more and more devices and movies will adopt this standard soon.

HEVCAnalyzer is a HEVC (H.265) stream and YUV file GUI Analyzer based on wxWidgets which can give video developer a brief view of the video coding structures and video coding params. The project is launched under the interest which wish leading a free video coding analyzer for our researchers and video coding developers.

The program can be built on Windows Linux or Mac OS X, but the program does not fully test on MacOS X. I am trying to optimize the re-drawing efficiency as current the program re-drawing is very slow!

Main features

  • Support YUV file
    • Both 8bit and 10bit YUV file
    • RGB pixel value of the frame in HEX mode or normal mode
    • Y/U/V single color component
    • Recognize the formated YUV width and height, and remember the width/height when open it second time
  • Support the thumbnails of the YUV file and HEVC stream file
  • Support scaling the frame of YUV and stream file in different size
  • Frame Ruler shows the frame size
  • Support HEVC stream file
    • CU/PU/TU coding block structure
    • PU type viewing
    • Tiles viewing (partly support)
    • Motion Vector
    • Frame bit allocation (soon)
    • POC/Frame decoding order
    • And Soon More!

Dependency

Windows

wxWidgets 3.0.2
wxsqlite3 (build with wx30)

Linux

libx11-dev libwxbase3.0-dev libwxgtk3.0-dev
libwxsqlite3-3.0-dev (this can be found on Debian testing)

Complier

Visual Studio 2013
clang++ with -std=c++11

Build with Visual Studio 2013

Download wxWidgets 3.0.2 and wxsqlite3 source code, build them with config with DLL Debug/Release, config the Visual Studio include path and the lib path (add the wxWidgets and wxsqlite3 include lib path)

Open the VS sln file under the Bulid/Win, build the source code with F7 or Ctrl + F5

Older Version Build Under Linux(Ubuntu)

Prefer clang++, but you can use g++ to build this project

if you want to build the project with gcc, you can chang to CXX = g++ in the makefile of this project.

sudo apt-get install libx11-dev libwxbase2.8-dev libwxgtk2.8-dev libwxsqlite3-2.8-dev
cd ~
git clone https://github.com/XimingCheng/HEVCAnalyzer.git
cd ~/HEVCAnalyzer/Build/Linux
make

Get to run:

cd ~/HEVCAnalyzer/bin
./HEVCAnalyzer

Also, you can download the wxWidgets-2.8-12 source code to build, but you must note the setup.h in the source should #define wxUSE_GRAPHICS_CONTEXT 1

Older Version Build Under Windows

Download wxWidgets-2.8-12 source code, you can build it with Visual Studio or other IDE

Note that you must change setup.h in the wxWidgets-2.8-12 source code from:

#ifndef wxUSE_GRAPHICS_CONTEXT
#define wxUSE_GRAPHICS_CONTEXT 0
#endif

To:

#ifndef wxUSE_GRAPHICS_CONTEXT
#define wxUSE_GRAPHICS_CONTEXT 1
#endif

If you use mingw to build wxWidgets, you must set USE_GDIPLUS=1

Build the wxWidgets source code you can located the build dir the source dir:

mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 USE_GDIPLUS=1  BUILD=release

You may change the BUILD mode to debug:

mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 USE_GDIPLUS=1  BUILD=debug

then you have to download the wxsqlite3 source code, and build it with mingw

mingw32-make -f makefile.gcc WX_VERSION=28 WX_SHARED=1 WX_MONOLITHIC=0 WX_UNICODE=1 WX_DEBUG=0 WX_DIR=/e/Project/wxMSW-2.8.12/
mingw32-make -f makefile.gcc WX_VERSION=28 WX_SHARED=1 WX_MONOLITHIC=0 WX_UNICODE=1 WX_DEBUG=1 WX_DIR=/e/Project/wxMSW-2.8.12/

NOTE THAT you must change WX_DIR to your own wxWidgets src dir

You can use the Code::Blocks project in HEVCAnalyzer/Build/Win/

Contact

Email: [email protected]

hevcanalyzer's People

Contributors

ximingcheng avatar lewgate avatar wanghongtao99 avatar sontek avatar xxvxx1 avatar

Watchers

James Cloos avatar luqiusheng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.