Skip to content

Commit

Permalink
Improve demo script
Browse files Browse the repository at this point in the history
  • Loading branch information
sbraz committed Feb 12, 2025
1 parent c69a662 commit 4526bdc
Showing 1 changed file with 25 additions and 19 deletions.
44 changes: 25 additions & 19 deletions scripts/demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,37 @@
# ruff: noqa: T201
"""A demo that shows how to call pymediainfo."""

import sys
import argparse
from pprint import pprint

from pymediainfo import MediaInfo


def print_frame(text):
print("+-{}-+".format("-" * len(text)))
print("| {} |".format(text))
print("+-{}-+".format("-" * len(text)))


def process(fname):
media_info = MediaInfo.parse(fname)
for track in media_info.tracks:
print_frame(track.track_type)
pprint(track.to_data())
print()
def process(media_file: str) -> None:
print(f"Processing {media_file}")
media_info = MediaInfo.parse(media_file)
for track in media_info.tracks:
if track.track_type == 'General' and track.duration:
print("Duration: {} sec.".format(track.duration / 1000.0))
if track.track_type == "General":
print(f"The file format is {track.format}")
print("General information dump:")
pprint(track.to_data())
elif track.track_type == "Video":
print(
f"Video track {track.track_id} has a resolution of {track.width}×{track.height}",
f"and a bit rate of {track.bit_rate} bits/s",
)
elif track.track_type == "Audio":
if track.duration is not None:
print(
f"Audio track {track.track_id} has a duration of {track.duration/1000} seconds"
)


if __name__ == "__main__":
if len(sys.argv) == 1:
print("Usage: {} <media_file>".format(sys.argv[0]))
sys.exit(0)
process(sys.argv[1])
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("media_file", nargs="+", help="media files to parse")
args = parser.parse_args()
for index, media_file in enumerate(args.media_file):
if index != 0:
print()
process(media_file)

0 comments on commit 4526bdc

Please sign in to comment.