Commit Graph

12 Commits

Author SHA1 Message Date
FlintyLemming
3f5a69c7af ♻️ refactor(av1-transfer): remove process name obfuscation feature
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:45:43 +08:00
FlintyLemming
94890d6418 🐛 fix(av1-transfer): silently fall back when preexec_fn exec fails in multithreaded context
GIL contention after fork in ThreadPoolExecutor can cause os.execvp to fail.
Catch the exception so subprocess proceeds with its own exec, keeping
transcoding functional even if process renaming fails.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:42:57 +08:00
FlintyLemming
79e19229af 🐛 fix(av1-transfer): use preexec_fn+os.execvp to rename ffmpeg argv[0]
execve with explicit paths fails on this system (linuxbrew symlink issue).
os.execvp in preexec_fn uses PATH lookup which works, and since it replaces
the child process before subprocess's own exec runs, pipes are inherited correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:19:11 +08:00
FlintyLemming
af3c55d3c7 🐛 fix(av1-transfer): find sh dynamically via shutil.which
/bin/sh doesn't exist on this system, sh is at /usr/bin/sh.
Use shutil.which to locate the shell at runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:14:23 +08:00
FlintyLemming
4724fd243b 🐛 fix(av1-transfer): remove hardcoded /bin/bash, use default sh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:13:28 +08:00
FlintyLemming
eaf6a41041 🐛 fix(av1-transfer): use bash exec -a instead of executable= to rename ffmpeg process
subprocess.Popen with executable= fails on linuxbrew due to symlink/execve
incompatibility. Use bash exec -a so ffmpeg is resolved via PATH instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:11:20 +08:00
FlintyLemming
c31a459f36 🐛 fix(av1-transfer): catch FileNotFoundError in get_duration when ffprobe is missing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:05:11 +08:00
FlintyLemming
bf98b6d002 ♻️ refactor(av1-transfer): replace setproctitle with ctypes to fully hide cmdline args
Drop the setproctitle dependency. Use prctl(PR_SET_NAME) to change
/proc/self/comm and directly overwrite argv memory via Py_GetArgcArgv
to clear /proc/self/cmdline, so ps aux shows no arguments.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:03:57 +08:00
FlintyLemming
a036b400d2 feat(av1-transfer): use setproctitle to rename Python main process
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 10:58:12 +08:00
FlintyLemming
5bf9f2f89e feat(av1-transfer): add process name alias and per-task progress bars
- Add -n/--process-name flag to set ffmpeg argv[0] alias (exec -a equivalent)
- Show real-time per-file progress via ffmpeg -progress pipe:1
- Use slot queue to manage per-worker tqdm bars (position 1..N)
- Add -pix_fmt yuv420p10le for 10-bit output

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 10:29:36 +08:00
FlintyLemming
7655176610 跳过 macOS 资源分支文件(._ 开头)避免转码报错
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 15:52:20 +08:00
FlintyLemming
48b4817b9d add script 2026-01-22 22:28:40 +08:00