cccc/youtube.py
2021-10-14 14:47:15 +01:00

49 lines
1.2 KiB
Python
Executable File

#!/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}&copy=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)