use ffmpeg-python

pull/209/head
Aevann 2023-09-26 17:42:39 +03:00
parent 798053aaaf
commit cc6a170261
2 changed files with 6 additions and 9 deletions

View File

@ -4,6 +4,7 @@ import time
import requests
from shutil import copyfile
import ffmpeg
import gevent
import imagehash
from flask import abort, g, has_request_context, request
@ -18,9 +19,6 @@ from files.helpers.settings import get_setting
from .config.const import *
def subprocess_run(params):
subprocess.run(params, check=True, timeout=30)
def remove_media_using_link(path):
if SITE in path:
path = path.split(SITE, 1)[1]
@ -92,7 +90,7 @@ def process_audio(file, v, old=None):
new = old + extension
try:
subprocess_run(["ffmpeg", "-loglevel", "quiet", "-y", "-i", old, "-map_metadata", "-1", "-c:a", "copy", new])
ffmpeg.input(old).output(new, loglevel="quiet", map_metadata=-1, acodec="copy").run()
except:
os.remove(old)
if os.path.isfile(new):
@ -115,7 +113,7 @@ def process_audio(file, v, old=None):
def convert_to_mp4(old, new):
tmp = new.replace('.mp4', '-t.mp4')
try:
subprocess_run(["ffmpeg", "-loglevel", "quiet", "-y", "-threads:v", "1", "-i", old, "-map_metadata", "-1", tmp])
ffmpeg.input(old).output(tmp, loglevel="quiet", map_metadata=-1).run()
except:
os.remove(old)
if os.path.isfile(tmp):
@ -155,7 +153,7 @@ def process_video(file, v):
gevent.spawn(convert_to_mp4, old, new)
else:
try:
subprocess_run(["ffmpeg", "-loglevel", "quiet", "-y", "-i", old, "-map_metadata", "-1", "-c:v", "copy", "-c:a", "copy", new])
ffmpeg.input(old).output(new, loglevel="quiet", map_metadata=-1, acodec="copy", vcodec="copy").run()
except:
os.remove(old)
if os.path.isfile(new):
@ -212,7 +210,7 @@ def process_image(filename, v, resize=0, trim=False, uploader_id=None, db=None):
params.append(filename)
try:
subprocess_run(params)
subprocess.run(params, check=True, timeout=30)
except:
os.remove(filename)
if has_request:

View File

@ -24,7 +24,6 @@ from files.helpers.sanitize import *
from files.helpers.settings import get_setting
from files.helpers.slots import *
from files.helpers.sorting_and_time import *
from files.helpers.media import subprocess_run
from files.routes.routehelpers import execute_shadowban_viewers_and_voters
from files.routes.wrappers import *
@ -619,7 +618,7 @@ def submit_post(v, sub=None):
p.url = process_video(file, v)
name = f'/images/{time.time()}'.replace('.','') + '.webp'
try:
subprocess_run(["ffmpeg", "-loglevel", "quiet", "-y", "-i", p.url, "-vf", "scale='iw':-2", "-q:v", "3", "-frames:v", "1", name])
subprocess.run(["ffmpeg", "-loglevel", "quiet", "-y", "-i", p.url, "-vf", "scale='iw':-2", "-q:v", "3", "-frames:v", "1", name], check=True, timeout=30)
except:
if os.path.isfile(name):
os.remove(name)