Giter Site home page Giter Site logo

mp4analyser's Introduction

mp4analyser

This project is a Python/TkInter application that can read and display the structure and contents of "boxes" (AKA "atoms" in Quick Time documentation) within mp4 files that conform to ISO/IEC 14496-12 โ€“ MPEG-4 Part 12.

I believe the use of Python allows any technically-minded individual to add their own "box" definitions as required. See wiki

Now able to parse files in Matroska or WebM format.

It should work on any platform that can run a Python interpreter and support TKinter.

Screenshot

alt text

Pre-Requisites

Use the latest version of Python (3.7+). Depending on the Python distribution for your platform, you may also need to install idle3.

If you are using a Mac, you should read this concerning TkInter: https://www.python.org/download/mac/tcltk/

Status

Version 1.1 released. Will consider pull requests.

TODO:

  • Keep adding boxes.
  • Optimise and refine code.

Authors

Steven Hentschel

License

This project is licensed under the GPL-3.0-or-later

mp4analyser's People

Contributors

crackevil avatar essential61 avatar jcdr428 avatar liminggang avatar mriemensberger avatar tonytony2020 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mp4analyser's Issues

mp4analyser apparently is not able to process large MP4 files

Just today I started to use mp4analyser. It is a very helpul tool. However, it managed to load a mp4 file of 2.713.599.692 Bytes length, but failed with another mp4 file with 3.249.745.066 Bytes in length. It throws exceptions:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Doc\AppData\Local\Programs\Python\Python38\lib\tkinter_init_.py", line 1883, in call
return self.func(*args)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4analyser.py", line 174, in open_file
new_file = mp4.iso.Mp4File(filename)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 57, in init
current_box = box_factory(f, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 258, in init
current_box = box_factory(fp, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 258, in init
current_box = box_factory(fp, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 258, in init
current_box = box_factory(fp, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 548, in init
bytes_left = self.size - (self.header.length + 8)
AttributeError: 'Header' object has no attribute 'length'

Installed Python version:

Large MP4 files, duplicate issues

Sorry, for some reason 2 issues were created on the same subject. Apparently I did something wrong. Both a meant to be the same issue!

mp4analyser does not process mp4 files > approx. 2,5 GB

Just today I started to use mp4analyser. It is a very helpul tool, thanks to the author. However, it only managed to load a mp4 file of 2.713.599.692 Bytes length (and any smaller file I used), but failed with another mp4 file with 3.249.745.066 Bytes in length and larger ones.

It throws exceptions:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Doc\AppData\Local\Programs\Python\Python38\lib\tkinter_init_.py", line 1883, in call
return self.func(*args)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4analyser.py", line 174, in open_file
new_file = mp4.iso.Mp4File(filename)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 57, in init
current_box = box_factory(f, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 258, in init
current_box = box_factory(fp, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 258, in init
current_box = box_factory(fp, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 258, in init
current_box = box_factory(fp, current_header, self)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 41, in box_factory
the_box = _box_class(fp, header, parent)
File "D:\Entwicklungsprojekte\MP4 Analyzer\mp4\iso.py", line 548, in init
bytes_left = self.size - (self.header.length + 8)
AttributeError: 'Header' object has no attribute 'length'

I'm just running the module from the idle shell.

Installed Python version:
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32

I'm running WINDOWS 10 Home, Version 10.0.18362 Build 18362 on my PC.

Best regards

Enhancement on HexView

@essential61 thanks for your work on such a nice tool.

Is it possible to do a enhancement on the hexview to highlight the selected bytes on the ascii data? And print a title and side column for offset of bytes

Like below:
MadEdit-Mod -  D__DEV_software_mp4analyser-master_mp4analyser py

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.