def _create_stsw_rtmp_sender(self, rtmp_url, stream_id): # should be protected by mutex if NATIVE_FFMPEG_SENDER_TYPE_NAME in self.stsw_senders: if stream_id in self.stsw_senders[NATIVE_FFMPEG_SENDER_TYPE_NAME]: log.warn('RTMP sender {0} for {1} already exits'.format(stream_id, self)) return sender_name = '_'.join(('rtmp', 'sender', self._stsw_stream_name)) sender = create_sender( sender_type=NATIVE_FFMPEG_SENDER_TYPE_NAME, sender_name=sender_name, dest_url=rtmp_url, log_file='sender_' + sender_name + '.log', dest_format='flv', stream_name=self._stsw_stream_name, extra_options={ 'vcodec': 'copy', 'acodec': 'aac', 'ar': '8000', 'strict': '-2', 'ac': '1', 'b:a': '10k', }) if NATIVE_FFMPEG_SENDER_TYPE_NAME in self.stsw_senders: self.stsw_senders[NATIVE_FFMPEG_SENDER_TYPE_NAME][stream_id] = sender else: self.stsw_senders[NATIVE_FFMPEG_SENDER_TYPE_NAME] = {stream_id: sender} log.info('Created RTMP sender {0} for {1}'.format(stream_id, self))
def _create_stsw_rtmp_sender(self, rtmp_url, stream_id): # should be protected by mutex if NATIVE_FFMPEG_SENDER_TYPE_NAME in self.stsw_senders: if stream_id in self.stsw_senders[NATIVE_FFMPEG_SENDER_TYPE_NAME]: log.warn('RTMP sender {0} for {1} already exits'.format( stream_id, self)) return sender_name = '_'.join(('rtmp', 'sender', self._stsw_stream_name)) sender = create_sender(sender_type=NATIVE_FFMPEG_SENDER_TYPE_NAME, sender_name=sender_name, dest_url=rtmp_url, log_file='sender_' + sender_name + '.log', dest_format='flv', stream_name=self._stsw_stream_name, extra_options={ 'vcodec': 'copy', 'acodec': 'aac', 'ar': '8000', 'strict': '-2', 'ac': '1', 'b:a': '10k', }) if NATIVE_FFMPEG_SENDER_TYPE_NAME in self.stsw_senders: self.stsw_senders[NATIVE_FFMPEG_SENDER_TYPE_NAME][ stream_id] = sender else: self.stsw_senders[NATIVE_FFMPEG_SENDER_TYPE_NAME] = { stream_id: sender } log.info('Created RTMP sender {0} for {1}'.format(stream_id, self))
def _create_stsw_rtmp_sender(self, rtmp_url, stream_id): # should be protected by mutex if FFMPEG_SENDER_TYPE in self.stsw_senders: if stream_id in self.stsw_senders[FFMPEG_SENDER_TYPE]: log.warn('RTMP sender {0} for {1} already exits'.format(stream_id, self)) return sender_name = '_'.join(('rtmp', 'sender', self._stsw_stream_name)) sender = create_sender( sender_type=FFMPEG_SENDER_TYPE, sender_name=sender_name, dest_url=rtmp_url, log_file='sender_' + sender_name + '.log', dest_format='flv', stream_name=self._stsw_stream_name, extra_options={ 'acodec': 'aac', }) if FFMPEG_SENDER_TYPE in self.stsw_senders: self.stsw_senders[FFMPEG_SENDER_TYPE][stream_id] = sender else: self.stsw_senders[FFMPEG_SENDER_TYPE] = {stream_id: sender} log.info('Created RTMP sender {0} for {1}'.format(stream_id, self)) if self.on is False: self.on = True
# -*- coding: utf-8 -*- from __future__ import unicode_literals, division from streamswitch.stream_mngr import create_stream from streamswitch.sources.rtsp_source import RTSP_SOURCE_TYPE_NAME from streamswitch.port_mngr import SubProcessPort from streamswitch.ports.rtsp_port import RTSP_PORT_PROGRAM_NAME from streamswitch.sender_mngr import create_sender from streamswitch.senders.native_ffmpeg_sender import NATIVE_FFMPEG_SENDER_TYPE_NAME src = create_stream(RTSP_SOURCE_TYPE_NAME, 'rs1', 'rtsp://192.168.2.100:554/user=admin&password=123456&id=1&type=1', log_file='src.log') port = SubProcessPort(port_name='tp', port_type=RTSP_PORT_PROGRAM_NAME) port.start() sender = sender = create_sender(NATIVE_FFMPEG_SENDER_TYPE_NAME, 'ts1', 'rtmp://121.41.72.231:11935/live/t1', log_file='sender.log', dest_format='flv', stream_name='rs1', extra_options={'vcodec': 'copy'})