Просмотр исходного кода

Vp9 fixes (#438)

* Fix fo ffprobe appending pipe
* Fix media remains pending when only encoding to webm
DecaTec 3 лет назад
Родитель
Сommit
3e7b106482
2 измененных файлов с 7 добавлено и 5 удалено
  1. 2 1
      files/helpers.py
  2. 5 4
      files/models.py

+ 2 - 1
files/helpers.py

@@ -443,7 +443,8 @@ def media_file_info(input_file):
                 input_file,
             ]
             stdout = run_command(cmd).get("out")
-            stream_size = sum([int(line) for line in stdout.split("\n") if line != ""])
+            # ffprobe appends a pipe at the end of the output, thus we have to remove it
+            stream_size = sum([int(line.replace("|", "")) for line in stdout.split("\n") if line != ""])
             audio_bitrate = round((stream_size * 8 / 1024.0) / audio_duration, 2)
 
         ret.update(

+ 5 - 4
files/models.py

@@ -637,15 +637,16 @@ class Media(models.Model):
 
     def set_encoding_status(self):
         """Set encoding_status for videos
-        Set success if at least one mp4 exists
+        Set success if at least one mp4 or webm exists
         """
         mp4_statuses = set(encoding.status for encoding in self.encodings.filter(profile__extension="mp4", chunk=False))
+        webm_statuses = set(encoding.status for encoding in self.encodings.filter(profile__extension="webm", chunk=False))
 
-        if not mp4_statuses:
+        if not mp4_statuses and not webm_statuses:
             encoding_status = "pending"
-        elif "success" in mp4_statuses:
+        elif "success" in mp4_statuses or "success" in webm_statuses:
             encoding_status = "success"
-        elif "running" in mp4_statuses:
+        elif "running" in mp4_statuses or "running" in webm_statuses:
             encoding_status = "running"
         else:
             encoding_status = "fail"