Bindings for FFmpegSource
Project description
Example usage
If you don’t need to keep the index, create a video source right away:
>>> import ffms2 >>> source_file = "test/CINT_Nik_H264_720_512kb.mp4" >>> vsource = ffms2.VideoSource(source_file)
Or you can create an indexer:
>>> indexer = ffms2.Indexer(source_file) >>> indexer.format_name 'mov,mp4,m4a,3gp,3g2,mj2' >>> indexer.track_info_list [TrackInfo(type=0, codec_name='h264'), TrackInfo(type=1, codec_name='aac')]
Then create the index for the video source:
>>> for track in indexer.track_info_list: >>> indexer.track_index_settings(track.num, 1, 0) >>> index = indexer.do_indexing2() >>> track_number = index.get_first_indexed_track_of_type(ffms2.FFMS_TYPE_VIDEO) >>> vsource = ffms2.VideoSource(source_file, track_number, index)
Extract information from the video source:
>>> vsource.properties.NumFrames 1430 >>> vsource.track.keyframes[:5] [0, 12, 24, 36, 48] >>> vsource.track.timecodes[:5] [0.0, 41.666666666666664, 83.33333333333333, 125.0, 166.66666666666666]
Retrieve a video frame:
>>> frame = vsource.get_frame(0) >>> frame.EncodedWidth, frame.EncodedHeight (416, 240) >>> frame.planes[0] array([41, 41, 41, ..., 41, 41, 41], dtype=uint8)
Audio stuff:
>>> track_number = index.get_first_indexed_track_of_type(ffms2.FFMS_TYPE_AUDIO) >>> asource = ffms2.AudioSource(source_file, track_number, index) >>> aprops = asource.properties >>> aprops.SampleRate, aprops.BitsPerSample, aprops.Channels (48000, 16, 2) >>> min_audio, max_audio = float("inf"), float("-inf") >>> for audio in asource.linear_access(rate=100): ... if audio.min() < min_audio: ... min_audio = audio.min() ... if audio.max() > max_audio: ... max_audio = audio.max() >>> min_audio, max_audio (-16191, 18824)
ffmsinfo.py is a demo script showing how this package can be used.
Installation
To install the package for Python 3, use:
$ ./setup.py install
To install the package for Python 2, use:
$ python2 setup.py install
Prerequisites
Python 3.2+ (or 2.7)
pywin32 (Windows only)
lib3to2 (if installing for Python 2)
The API was designed to be an object-oriented and Pythonic version of the original FFmpegSource API.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ffms2-0.4.1.tar.gz
(21.8 kB
view details)
File details
Details for the file ffms2-0.4.1.tar.gz
.
File metadata
- Download URL: ffms2-0.4.1.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8db162ef60dbd5a97882463391c8c98d4cfcaa19149e0b91eb6beb0951e7cb89 |
|
MD5 | f47484336ad4bf4437421d0b985de7ee |
|
BLAKE2b-256 | e0a94154e1abebfa11819b152883d504eba1636a7b5d78a8d974bea397b95d9c |