From e1dded89b1259d33095a85c01af83f1ae54648ae Mon Sep 17 00:00:00 2001 From: Karl Kroening Date: Sat, 2 Jun 2018 00:42:51 -0700 Subject: [PATCH] Add read_frame_as_jpeg example --- examples/read_frame_as_jpeg.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 examples/read_frame_as_jpeg.py diff --git a/examples/read_frame_as_jpeg.py b/examples/read_frame_as_jpeg.py new file mode 100755 index 0000000..e7ec52c --- /dev/null +++ b/examples/read_frame_as_jpeg.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +from __future__ import unicode_literals +import argparse +import ffmpeg +import sys + + +parser = argparse.ArgumentParser( + description='Read individual video frame into memory as jpeg and write to stdout') +parser.add_argument('in_filename', help='Input filename') +parser.add_argument('frame_num', help='Frame number') + + +def read_frame_as_jpeg(in_filename, frame_num): + out, err = ( + ffmpeg + .input(in_filename) + .filter_('select', 'gte(n,{})'.format(frame_num)) + .output('pipe:', vframes=1, format='image2', vcodec='mjpeg') + .run(capture_stdout=True) + ) + return out + + +if __name__ == '__main__': + args = parser.parse_args() + out = read_frame_as_jpeg(args.in_filename, args.frame_num) + sys.stdout.buffer.write(out)