def __init__(self, stream): self._stream = RtmpStreamReader(stream) self._skip_meta = self._skip_head = self._skip_magic_head = False #self._skip_audio_tag = self._skip_video_tag = False self._skip_audio_tag = True self._skip_video_tag = False self._buf = [] self.onMetaData = None
def __init__(self, fn, mode=True): stream = file(fn) self._fd = os.open(fn, os.O_RDONLY) self._reader = RtmpStreamReader(stream) self._pre_pos = 0 self._skip_first_video_tag = False self._first_video_tag = None self._head = None self._keyframes = [] self._skip_video_tag = False self._skip_first_audio_tag = False self._first_audio_tag = None self._head_dead_line = 0 super(FlvFragment, self).__init__(mode=mode) self._swig = 0
def __init__(self, data_in=None, step_length=1, channel=None, start_chunk_id='-0x1', delay_seconds = 0, enable_backswing=0): """ @data_in: Data source. @step_length: The max length of time slices can play. @channel: The name of the data source. @start_chunk_id: Number of the starting chunk, starting from the current time by default. """ if not channel: raise FragmentError('Channenl is required.') self._channel = channel if not data_in: data_in = sys.stdin elif data_in.startswith("rtmp://"): import librtmp conn = librtmp.RTMP(data_in, live=True) # Attempt to connect conn.connect() # Get a file-like object to access to the stream stream = conn.create_stream() # Read 1024 bytes of data data_in = stream self._buf = [] #store tag temporary. self._id_generator = id_generator(int(start_chunk_id, 16)) self._stream = RtmpStreamReader(data_in) #data source reader. self._step_length = step_length self.delay_seconds = delay_seconds self._seq = 0 #sequence number of tag. self._chunk_seq = 0 #sequence number of chunk. self._skip_meta = self._skip_head = self._skip_magic_head = False self._flv_head_no = 0 self._swing = 0 # swing self._head = None self._skip_audio_tag = self._skip_video_tag = False self._enable_backswing = enable_backswing self._do_sleep = False self._has_head = False self._meta_tag = None