Skip to main content

FFfilter

Filters media files by testing criteria against header metadata extracted by ffprobe.

Install

pip install fffilter

Dependencies

  • FFfilter uses subprocess to access the system installation of ffprobe.

  • colorama will be automatically installed by pip.

Use

Command-line tool

-s --show [key]

Returns a tab-separated list of all values of [key].

# Return the value(s) of display_aspect_ratio
fffilter /path/to/file --show display_aspect_ratio
# Return a list of files, surfacing all possible values of given keys
# (note that '-' must be first argument when receiving piped input if using --show)
find . -name '*.mp4' | fffilter - --show codec_name codec_type display_aspect_ratio

-m --match [key] [value]

Lists files which match all criteria:

  • matching files are listed on stdout

  • non-matching files are listed on stderr, printed over a red background

Simply pass key and value pairs to repeating occurrences of the --match parameter.

# Return absoulte path for file if its header declares 4:3 aspect
fffilter /path/to/file --match display_aspect_ratio 4:3
# Filter a list of files for h.264-encoded full-HD mp4s
find . -name '*.mp4' | fffilter --match codec_name h264 --match height 1080 --match width 1920 -

Module

from fffilter import fffilter

path = 'media/some_file.mp4'

# The show() method requires a path and a list of keys
d = fffilter.show(path, ['codec_type', 'display_aspect_ratio'])

# The match() method requires a path and either key=value pairs or a packed dictionary: **{'key':'value'}
m = fffilter.match(path, codec_type='video', display_aspect_ratio='16:9')

print(d)
print(m)
{'display_aspect_ratio': [u'16:9'], 'codec_type': [u'audio', u'video']}
True

You can also call ffprobe(path) to access a dictionary of the complete headers:

headers = fffilter.ffprobe(path)
print(headers)
{u'streams': [{u'pix_fmt': u'yuv420p', u'sample_aspect_ratio': u'1:1', u'refs': 1, u'codec_type': u'video', u'coded_height': 720
...

Disclaimer

This Python Package is not affiliated with FFmpeg or FFprobe.

Credits

FFfilter was written by Edward Anderson, British Film Institute.

Licence

Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)

Metadata

Release files for FFfilter 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for FFfilter 0.0.3
File Size Uploaded
FFfilter-0.0.3.tar.gz 4.0 kB Details

Release files / FFfilter-0.0.3.tar.gz

Download URL FFfilter-0.0.3.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f00c4b9f3394497b091963d7092ed5669cc30ad8f41bd307ac94a38c7bebf44a
BLAKE2b-256 checksum
How to use checksums
62e0cdecb38eb6aa056a9fe32df1f632cfcb3ec85d9a375ef147bca49d1a459a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.3 This release

1 release file

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page