Browse Source

add debug config flag to enable ffmpeg debug logging

main
Brett Langdon 2 years ago
parent
commit
2a49384342
No known key found for this signature in database GPG Key ID: 9BAD4322A65AD78B
2 changed files with 15 additions and 2 deletions
  1. +1
    -0
      src/dlhdhr/config.py
  2. +14
    -2
      src/dlhdhr/ffmpeg.py

+ 1
- 0
src/dlhdhr/config.py View File

@ -11,6 +11,7 @@ def _set_or_none(name: str) -> set[str] | None:
HOST = os.getenv("DLHDHR_HOST", "127.0.0.1") HOST = os.getenv("DLHDHR_HOST", "127.0.0.1")
PORT: int = int(os.getenv("DLHDHR_PORT", 8000)) PORT: int = int(os.getenv("DLHDHR_PORT", 8000))
DEBUG: bool = os.getenv("DLHDHR_DEBUG", "0").lower() in ("1", "true")
DLHD_BASE_URL = os.getenv("DLHD_BASE_URL", "https://dlhd.sx/") DLHD_BASE_URL = os.getenv("DLHD_BASE_URL", "https://dlhd.sx/")
DLHD_INDEX_M3U8_PATTERN = os.getenv( DLHD_INDEX_M3U8_PATTERN = os.getenv(


+ 14
- 2
src/dlhdhr/ffmpeg.py View File

@ -1,5 +1,7 @@
import asyncio import asyncio
from dlhdhr import config
class FFMpegNotStartedError(Exception): class FFMpegNotStartedError(Exception):
pass pass
@ -11,6 +13,10 @@ class FFMpegProcess:
_process: asyncio.subprocess.Process | None = None _process: asyncio.subprocess.Process | None = None
def __init__(self, playlist_url: str): def __init__(self, playlist_url: str):
log_level = "quiet"
if config.DEBUG:
log_level = "debug"
self._ffmpeg_command = " ".join( self._ffmpeg_command = " ".join(
[ [
"ffmpeg", "ffmpeg",
@ -27,7 +33,7 @@ class FFMpegProcess:
"-f", "-f",
"mpegts", "mpegts",
"-loglevel", "-loglevel",
"quiet",
log_level,
"pipe:1", "pipe:1",
] ]
) )
@ -53,10 +59,16 @@ class FFMpegProcess:
async def _start(self) -> None: async def _start(self) -> None:
if not self._process: if not self._process:
stderr = asyncio.subprocess.DEVNULL
if config.DEBUG:
# When debugging let ffmpeg write to normal stderr
# do we see the logs in the application stderr
stderr = None
self._process = await asyncio.subprocess.create_subprocess_shell( self._process = await asyncio.subprocess.create_subprocess_shell(
self._ffmpeg_command, self._ffmpeg_command,
stdout=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.DEVNULL,
stderr=stderr,
) )
def _stop(self) -> None: def _stop(self) -> None:


Loading…
Cancel
Save