Example #1
0
 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
Example #2
0
 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
Example #3
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