Пример #1
0
    def write_rtmp_meta_headers(self, ts):
        meta = dict(duration=0.0)

        if self.vsink:
            meta.update(width=self.width, height=self.height,
                        framerate=(float(self.framerate.numerator) /
                                   self.framerate.denominator),
                        videodatarate=self.video_bitrate,
                        videokeyframe_frequency=self.key_rate)
            if self.video_codec.codecId == 7:
                meta.update(videocodecid='avc1',
                            avcprofile=self.video_avc_profile,
                            avclevel=self.video_avc_level)

        if self.asink:
            meta.update(audiosamplerate=self.audio_rate,
                        audiodatarate=self.audio_bitrate,
                        audiochannels=self.channels)
            if self.audio_codec.codecId == 2:
                meta.update(audiocodecid='.mp3')
            elif self.audio_codec.codecId == 10:
                meta.update(audiocodecid='mp4a')

        wm = self._stream.write_meta
        wm(ts, amf0.encode('onStatus',
                           amf0.Object(code='NetStream.Data.Start')))
        wm(ts, amf0.encode('onMetaData', meta))
        wm(ts, amf0.encode('@setDataFrame', 'onMetaData', meta))
Пример #2
0
 def test_encode(self):
     for i, (encoded, decoded) in enumerate(self.test_data):
         if i in self.skip_encoding_tests:
             continue
         b = encode(*decoded)
         result = b.read(len(b))
         self.assertEquals(p(encoded), result, 'failed encoding @ %d' % i)
Пример #3
0
 def test_decode_encode(self):
     for i, (encoded, _) in enumerate(self.test_data):
         if i in self.skip_encoding_tests:
             continue
         b = encode(*decode(v(encoded)))
         result = b.read(len(b))
         self.assertEquals(p(encoded), result, 'failed re-encoding @ %d' % i)
         self.assertEquals(len(b), 0, 'data left @ %d' % i)
Пример #4
0
 def encode_amf(self, *args):
     # for now only supporting AMF0
     return amf0.encode(*args)
Пример #5
0
 def test_encode_decode(self):
     for i, (_, decoded) in enumerate(self.test_data):
         b = encode(*decoded)
         self.assertEquals(decode(b), decoded,
                           'failed re-decoding @ %d' % i)
         self.assertEquals(len(b), 0, 'data left @ %d' % i)
Пример #6
0
 def test_encode_decode(self):
     for i, (_, decoded) in enumerate(self.test_data):
         b = encode(*decoded)
         self.assertEquals(decode(b), decoded, 'failed re-decoding @ %d' % i)
         self.assertEquals(len(b), 0, 'data left @ %d' % i)
Пример #7
0
 def encode_amf(self, *args):
     # for now only supporting AMF0
     return amf0.encode(*args)