Compare commits

..

2 commits

Author SHA1 Message Date
j
7e8f3c4e50 hide ffmpeg banner 2025-12-23 22:15:51 +01:00
j
bc4e715ce4 only run cleanup if folders exist 2025-12-23 22:14:22 +01:00
2 changed files with 31 additions and 11 deletions

View file

@ -308,6 +308,7 @@ def stream(video, target, profile, info, audio_track=0, flags={}):
cmds = [] cmds = []
base = [settings.FFMPEG, base = [settings.FFMPEG,
'-hide_banner',
'-nostats', '-loglevel', 'error', '-nostats', '-loglevel', 'error',
'-y', '-i', video, '-threads', '4', '-map_metadata', '-1', '-sn'] '-y', '-i', video, '-threads', '4', '-map_metadata', '-1', '-sn']
@ -413,7 +414,9 @@ def frame(video, frame, position, height=128, redo=False, info=None):
def ffmpeg_frame_cmd(video, frame, position, height=128): def ffmpeg_frame_cmd(video, frame, position, height=128):
cmd = [ cmd = [
settings.FFMPEG, '-y', settings.FFMPEG,
'-hide_banner',
'-y',
'-ss', str(position), '-ss', str(position),
'-i', video, '-i', video,
'-an', '-frames:v', '1', '-an', '-frames:v', '1',
@ -696,6 +699,7 @@ def chop(video, start, end, subtitles=None, dest=None, encode=False):
] ]
cmd = [ cmd = [
settings.FFMPEG, settings.FFMPEG,
'-hide_banner',
'-y', '-y',
'-i', video, '-i', video,
'-ss', '%.3f' % start, '-ss', '%.3f' % start,
@ -721,7 +725,11 @@ def chop(video, start, end, subtitles=None, dest=None, encode=False):
return None return None
def has_faststart(path): def has_faststart(path):
cmd = [settings.FFPROBE, '-v', 'trace', '-i', path] cmd = [
settings.FFPROBE,
'-hide_banner',
'-v', 'trace', '-i', path
]
p = subprocess.Popen(cmd, stdin=subprocess.PIPE, p = subprocess.Popen(cmd, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, stderr=subprocess.STDOUT,
@ -746,6 +754,7 @@ def remux_stream(src, dst):
video = [] video = []
cmd = [ cmd = [
settings.FFMPEG, settings.FFMPEG,
'-hide_banner',
'-nostats', '-loglevel', 'error', '-nostats', '-loglevel', 'error',
'-i', src, '-i', src,
'-map_metadata', '-1', '-sn', '-map_metadata', '-1', '-sn',
@ -768,7 +777,11 @@ def remux_stream(src, dst):
def ffprobe(path, *args): def ffprobe(path, *args):
cmd = [settings.FFPROBE, '-loglevel', 'error', '-print_format', 'json', '-i', path] + list(args) cmd = [
settings.FFPROBE,
'-hide_banner',
'-loglevel', 'error', '-print_format', 'json', '-i', path
] + list(args)
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
stdout, stderr = p.communicate() stdout, stderr = p.communicate()
return json.loads(stdout.decode()) return json.loads(stdout.decode())
@ -816,7 +829,11 @@ def extract_subtitles(path, language=None):
extra = ['-map', '0:%s' % track[0]['index']] extra = ['-map', '0:%s' % track[0]['index']]
else: else:
raise Exception("unknown language: %s" % language) raise Exception("unknown language: %s" % language)
cmd = ['ffmpeg', '-loglevel', 'error', '-i', path] + extra + ['-f', 'srt', '-'] cmd = [
settings.FFMPEG,
'-hide_banner',
'-loglevel', 'error', '-i', path
] + extra + ['-f', 'srt', '-']
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
stdout, stderr = p.communicate() stdout, stderr = p.communicate()
return ox.srt.loads(stdout.decode()) return ox.srt.loads(stdout.decode())

View file

@ -150,12 +150,15 @@ def extract_clip(public_id, in_, out, resolution, format, track=None):
def clear_cache(days=60): def clear_cache(days=60):
import subprocess import subprocess
path = os.path.join(settings.MEDIA_ROOT, 'media') path = os.path.join(settings.MEDIA_ROOT, 'media')
if os.path.exists(path):
cmd = ['find', path, '-iregex', '.*/frames/.*', '-atime', '+%s' % days, '-type', 'f', '-exec', 'rm', '{}', ';'] cmd = ['find', path, '-iregex', '.*/frames/.*', '-atime', '+%s' % days, '-type', 'f', '-exec', 'rm', '{}', ';']
subprocess.check_output(cmd) subprocess.check_output(cmd)
if os.path.exists(path):
path = os.path.join(settings.MEDIA_ROOT, 'items') path = os.path.join(settings.MEDIA_ROOT, 'items')
cmd = ['find', path, '-iregex', '.*/cache/.*', '-atime', '+%s' % days, '-type', 'f', '-exec', 'rm', '{}', ';'] cmd = ['find', path, '-iregex', '.*/cache/.*', '-atime', '+%s' % days, '-type', 'f', '-exec', 'rm', '{}', ';']
subprocess.check_output(cmd) subprocess.check_output(cmd)
path = settings.MEDIA_ROOT path = settings.MEDIA_ROOT
if os.path.exists(path):
cmd = ['find', path, '-type', 'd', '-size', '0', '-prune', '-exec', 'rmdir', '{}', ';'] cmd = ['find', path, '-type', 'd', '-size', '0', '-prune', '-exec', 'rmdir', '{}', ';']
subprocess.check_output(cmd) subprocess.check_output(cmd)