for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
"""
ffmpeg_streaming.streams
~~~~~~~~~~~~
Parse streams that is the output of the FFProbe
:copyright: (c) 2020 by Amin Yazdanpanah.
:website: https://www.aminyazdanpanah.com
:email: [email protected]
:license: MIT, see LICENSE for more details.
class Streams:
def __init__(self, streams):
self.streams = streams
def video(self, ignore_error=True):
@TODO: add documentation
return self._get_stream('video', ignore_error)
def audio(self, ignore_error=True):
return self._get_stream('audio', ignore_error)
def first_stream(self):
return self.streams[0]
def all(self):
return self.streams
def videos(self):
return self._get_streams('video')
def audios(self):
return self._get_streams('audio')
def _get_stream(self, media, ignore_error):
media_attr = next((stream for stream in self.streams if stream['codec_type'] == media), None)
stream
if media_attr is None and not ignore_error:
raise ValueError('No ' + str(media) + ' stream found')
return media_attr if media_attr is not None else {}
def _get_streams(self, media):
for stream in self.streams:
if stream['codec_type'] == media:
yield stream