#!/usr/bin/python3 import os import json import subprocess config = { 'RTMP_URL': 'rtmp://a.rtmp.youtube.com/live2/{STREAM_KEY}', 'HLS_URL': 'https://a.upload.youtube.com/http_upload_hls?cid=${STREAM_KEY}©=0&file=live.m3u8', 'SRC': 'rtsp://192.168.1.64:554/Streaming/channels/103', 'STREAM_KEY': 'not-set' } with open('youtube.json') as fd: config.update(json.load(fd)) cmd = [ 'ffmpeg', '-hide_banner', '-threads', '4', '-i', config['SRC'], '-f', 'lavfi', '-i', 'anullsrc=channel_layout=stereo:sample_rate=44100', '-map', '0:v', '-map', '1:a', ] if config.get('HLS'): cmd += [ '-codec:a', 'aac', '-b:a', '44100', '-bufsize', '1024k', '-c:v', 'copy', '-f', 'hls', '-method', 'PUT', '-hls_time', '2', '-hls_list_size', '4', '-reconnect', '1', config['HLS_URL'].format(**config) ] else: cmd += [ '-codec:a', 'libmp3lame', '-threads', '4', '-b:a', '11025', '-bufsize', '1024k', '-fflags', '+genpts', '-c:v', 'copy', '-f', 'flv', '-reconnect', '1', config['RTMP_URL'].format(**config) ] subprocess.check_output(cmd)