feat:FFmpeg单线程

This commit is contained in:
jxxghp
2023-12-17 10:15:56 +08:00
parent 7619516433
commit acb6a0f591
2 changed files with 19 additions and 14 deletions

View File

@@ -322,7 +322,7 @@
"FFmpegThumb": {
"name": "FFmpeg缩略图",
"description": "TheMovieDb没有背景图片时使用FFmpeg截取视频文件缩略图",
"version": "1.0",
"version": "1.1",
"icon": "ffmpeg.png",
"author": "jxxghp",
"level": 1

View File

@@ -1,3 +1,4 @@
import threading
from datetime import datetime, timedelta
from pathlib import Path
from threading import Event as ThreadEvent
@@ -16,6 +17,8 @@ from app.schemas import TransferInfo
from app.schemas.types import EventType
from app.utils.system import SystemUtils
ffmpeg_lock = threading.Lock()
class FFmpegThumb(_PluginBase):
# 插件名称
@@ -25,7 +28,7 @@ class FFmpegThumb(_PluginBase):
# 插件图标
plugin_icon = "ffmpeg.png"
# 插件版本
plugin_version = "1.0"
plugin_version = "1.1"
# 插件作者
plugin_author = "jxxghp"
# 作者主页
@@ -328,18 +331,20 @@ class FFmpegThumb(_PluginBase):
"""
处理一个文件
"""
try:
thumb_path = file_path.with_name(file_path.stem + "-thumb.jpg")
if thumb_path.exists():
logger.info(f"缩略图已存在:{thumb_path}")
return
if FfmpegHelper.get_thumb(video_path=str(file_path),
image_path=str(thumb_path), frames=self._timeline):
logger.info(f"{file_path} 缩略图已生成:{thumb_path}")
else:
logger.warn(f"{file_path} 缩略图生成失败!")
except Exception as err:
logger.error(f"FFmpeg处理文件 {file_path} 时发生错误:{str(err)}")
# 单线程处理
with ffmpeg_lock:
try:
thumb_path = file_path.with_name(file_path.stem + "-thumb.jpg")
if thumb_path.exists():
logger.info(f"缩略图已存在:{thumb_path}")
return
if FfmpegHelper.get_thumb(video_path=str(file_path),
image_path=str(thumb_path), frames=self._timeline):
logger.info(f"{file_path} 缩略图生成{thumb_path}")
else:
logger.warn(f"{file_path} 缩略图生成失败!")
except Exception as err:
logger.error(f"FFmpeg处理文件 {file_path} 时发生错误:{str(err)}")
def stop_service(self):
"""