diff --git a/ffmpeg/asyncio/ffmpeg.py b/ffmpeg/asyncio/ffmpeg.py index 6bedec9..d104d2f 100644 --- a/ffmpeg/asyncio/ffmpeg.py +++ b/ffmpeg/asyncio/ffmpeg.py @@ -255,11 +255,12 @@ async def _read_stdout(self) -> bytes: async def _handle_stderr(self) -> str: assert self._process.stderr is not None - line = b"" - async for line in readlines(self._process.stderr): - self.emit("stderr", line.decode()) + line = "" + async for line_bytes in readlines(self._process.stderr): + line = line_bytes.decode(errors="backslashreplace") + self.emit("stderr", line) - return line.decode() + return line def _reraise_exception(self, exception: Exception): raise exception diff --git a/ffmpeg/ffmpeg.py b/ffmpeg/ffmpeg.py index 36a8c73..940c953 100644 --- a/ffmpeg/ffmpeg.py +++ b/ffmpeg/ffmpeg.py @@ -251,9 +251,10 @@ def _read_stdout(self) -> bytes: def _handle_stderr(self) -> str: assert self._process.stderr is not None - line = b"" - for line in readlines(self._process.stderr): - self.emit("stderr", line.decode()) + line = "" + for line_bytes in readlines(self._process.stderr): + line = line_bytes.decode(errors="backslashreplace") + self.emit("stderr", line) self._process.stderr.close() - return line.decode() + return line