tmk/cpp/tools/rawrgbdump.py (30 lines of code) (raw):

#!/usr/bin/env python2 # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved # You may need # sudo pip install pillow # or # sudo pip2 install pillow # to get PIL (Python image library) from PIL import Image import sys import os import errno # ================================================================ # This is a sample of how to use Python to read a raw RGB-frame-raster file # written by ffmpeg.exe. See also ./README.md. # ================================================================ def dump_vstr(filename, frame_height, frame_width): ''' Reads a raw RGB-frame-rasters file and prints it. ''' with open(filename, 'rb') as handle: prefix = os.path.basename(filename).replace('.rgb', '') fno = 0 while True: frame = handle.read(3 * frame_height * frame_width) if not frame: break image = Image.frombytes('RGB', (frame_width, frame_height), frame) fname = "%s-%08d.jpg" % (prefix, fno) image.save(fname, format='jpeg') print(fname) fno += 1 # ================================================================ height = 256 width = 256 try: for filename in sys.argv[1:]: dump_vstr(filename, height, width) except IOError as e: if e.errno == errno.EPIPE: pass # e.g. we were piped to head which is harmless else: raise e