Compare commits

...

2 commits

Author SHA1 Message Date
j
4794c0f68a fix remux 2023-11-20 20:58:58 +00:00
j
de818c4204 better error for failed imports 2023-11-20 10:19:45 +00:00
3 changed files with 15 additions and 6 deletions

View file

@ -205,6 +205,7 @@ def download(item_id, url, referer=None):
f.extract_stream() f.extract_stream()
status = True status = True
else: else:
logger.error("failed to import %s file already exists %s", url, oshash)
status = 'file exists' status = 'file exists'
if len(parts) == 1: if len(parts) == 1:
add_subtitles(f.item, media, tmp) add_subtitles(f.item, media, tmp)

View file

@ -733,19 +733,24 @@ def remux_stream(src, dst):
cmd = [ cmd = [
settings.FFMPEG, settings.FFMPEG,
'-nostats', '-loglevel', 'error', '-nostats', '-loglevel', 'error',
'-map_metadata', '-1', '-sn',
'-i', src, '-i', src,
'-map_metadata', '-1', '-sn',
] + video + [ ] + video + [
] + audio + [ ] + audio + [
'-movflags', '+faststart', '-movflags', '+faststart',
dst dst
] ]
print(cmd)
p = subprocess.Popen(cmd, stdin=subprocess.PIPE, p = subprocess.Popen(cmd, stdin=subprocess.PIPE,
stdout=open('/dev/null', 'w'), stdout=subprocess.PIPE,
stderr=open('/dev/null', 'w'), stderr=subprocess.STDOUT,
close_fds=True) close_fds=True)
p.wait() stdout, stderr = p.communicate()
return True, None if stderr:
logger.error("failed to remux %s %s", cmd, stderr)
return False, stderr
else:
return True, None
def ffprobe(path, *args): def ffprobe(path, *args):

View file

@ -821,7 +821,10 @@ class Stream(models.Model):
done = True done = True
elif self.file.can_remux(): elif self.file.can_remux():
ok, error = extract.remux_stream(media, target) ok, error = extract.remux_stream(media, target)
done = True if ok:
self.available = True
self.save()
done = True
if not done: if not done:
ok, error = extract.stream(media, target, self.name(), info, flags=self.flags) ok, error = extract.stream(media, target, self.name(), info, flags=self.flags)