refactor: refactor postprocessor
This commit is contained in:
parent
35ef14b31c
commit
7dd894e256
@ -17,7 +17,7 @@ from ..flv.helpers import is_valid_flv_file
|
|||||||
from ..flv.metadata_analysis import analyse_metadata
|
from ..flv.metadata_analysis import analyse_metadata
|
||||||
from ..flv.metadata_injection import InjectingProgress, inject_metadata
|
from ..flv.metadata_injection import InjectingProgress, inject_metadata
|
||||||
from ..logging.room_id import aio_task_with_room_id
|
from ..logging.room_id import aio_task_with_room_id
|
||||||
from ..path import danmaku_path, extra_metadata_path
|
from ..path import danmaku_path, extra_metadata_path, record_metadata_path
|
||||||
from ..utils.mixins import AsyncCooperationMixin, AsyncStoppableMixin, SupportDebugMixin
|
from ..utils.mixins import AsyncCooperationMixin, AsyncStoppableMixin, SupportDebugMixin
|
||||||
from .ffmpeg_metadata import make_metadata_file
|
from .ffmpeg_metadata import make_metadata_file
|
||||||
from .helpers import copy_files_related, discard_dir, discard_file, get_extra_metadata
|
from .helpers import copy_files_related, discard_dir, discard_file, get_extra_metadata
|
||||||
@ -142,6 +142,8 @@ class Postprocessor(
|
|||||||
async with self._worker_semaphore:
|
async with self._worker_semaphore:
|
||||||
logger.debug(f'Postprocessing... {video_path}')
|
logger.debug(f'Postprocessing... {video_path}')
|
||||||
|
|
||||||
|
await self._wait_for_metadata_file(video_path)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if video_path.endswith('.flv'):
|
if video_path.endswith('.flv'):
|
||||||
if not await self._is_vaild_flv_file(video_path):
|
if not await self._is_vaild_flv_file(video_path):
|
||||||
@ -321,3 +323,22 @@ class Postprocessor(
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
async def _wait_for_metadata_file(self, video_path: str) -> None:
|
||||||
|
loop = asyncio.get_running_loop()
|
||||||
|
|
||||||
|
if video_path.endswith('.flv'):
|
||||||
|
path = extra_metadata_path(video_path)
|
||||||
|
elif video_path.endswith('.m3u8'):
|
||||||
|
path = record_metadata_path(video_path)
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
|
for _ in range(10):
|
||||||
|
if await loop.run_in_executor(None, os.path.isfile, path):
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
logger.debug(f'Not found metadata file: {path}')
|
||||||
|
await asyncio.sleep(1)
|
||||||
|
else:
|
||||||
|
logger.warning(f'No such metadata file: {path}')
|
||||||
|
Loading…
Reference in New Issue
Block a user