use ffmpeg-python #209
|
@ -4,6 +4,7 @@ import time
|
||||||
import requests
|
import requests
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
|
|
||||||
|
import ffmpeg
|
||||||
import gevent
|
import gevent
|
||||||
import imagehash
|
import imagehash
|
||||||
from flask import abort, g, has_request_context, request
|
from flask import abort, g, has_request_context, request
|
||||||
|
@ -18,9 +19,6 @@ from files.helpers.settings import get_setting
|
||||||
|
|
||||||
from .config.const import *
|
from .config.const import *
|
||||||
|
|
||||||
def subprocess_run(params):
|
|
||||||
subprocess.run(params, check=True, timeout=30)
|
|
||||||
|
|
||||||
def remove_media_using_link(path):
|
def remove_media_using_link(path):
|
||||||
if SITE in path:
|
if SITE in path:
|
||||||
path = path.split(SITE, 1)[1]
|
path = path.split(SITE, 1)[1]
|
||||||
|
@ -92,7 +90,7 @@ def process_audio(file, v, old=None):
|
||||||
new = old + extension
|
new = old + extension
|
||||||
|
|
||||||
try:
|
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:
|
except:
|
||||||
os.remove(old)
|
os.remove(old)
|
||||||
if os.path.isfile(new):
|
if os.path.isfile(new):
|
||||||
|
@ -115,7 +113,7 @@ def process_audio(file, v, old=None):
|
||||||
def convert_to_mp4(old, new):
|
def convert_to_mp4(old, new):
|
||||||
tmp = new.replace('.mp4', '-t.mp4')
|
tmp = new.replace('.mp4', '-t.mp4')
|
||||||
try:
|
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:
|
except:
|
||||||
os.remove(old)
|
os.remove(old)
|
||||||
if os.path.isfile(tmp):
|
if os.path.isfile(tmp):
|
||||||
|
@ -155,7 +153,7 @@ def process_video(file, v):
|
||||||
gevent.spawn(convert_to_mp4, old, new)
|
gevent.spawn(convert_to_mp4, old, new)
|
||||||
else:
|
else:
|
||||||
try:
|
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:
|
except:
|
||||||
os.remove(old)
|
os.remove(old)
|
||||||
if os.path.isfile(new):
|
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)
|
params.append(filename)
|
||||||
try:
|
try:
|
||||||
subprocess_run(params)
|
subprocess.run(params, check=True, timeout=30)
|
||||||
except:
|
except:
|
||||||
os.remove(filename)
|
os.remove(filename)
|
||||||
if has_request:
|
if has_request:
|
||||||
|
|
|
@ -24,7 +24,6 @@ from files.helpers.sanitize import *
|
||||||
from files.helpers.settings import get_setting
|
from files.helpers.settings import get_setting
|
||||||
from files.helpers.slots import *
|
from files.helpers.slots import *
|
||||||
from files.helpers.sorting_and_time 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.routehelpers import execute_shadowban_viewers_and_voters
|
||||||
from files.routes.wrappers import *
|
from files.routes.wrappers import *
|
||||||
|
|
||||||
|
@ -619,7 +618,7 @@ def submit_post(v, sub=None):
|
||||||
p.url = process_video(file, v)
|
p.url = process_video(file, v)
|
||||||
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
name = f'/images/{time.time()}'.replace('.','') + '.webp'
|
||||||
try:
|
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:
|
except:
|
||||||
if os.path.isfile(name):
|
if os.path.isfile(name):
|
||||||
os.remove(name)
|
os.remove(name)
|
||||||
|
|
Loading…
Reference in New Issue