mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 10:51:36 -04:00
Video transcodes run at the least CPU priority
ffmpeg is wrapped in `nice -n19` so a multi-hour transcode never competes with the API, downloads, or other background work. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
4e53e02519
commit
a4557846bf
2 changed files with 5 additions and 1 deletions
|
|
@ -8,6 +8,7 @@ import pytest
|
|||
from modules.videos.transcode import codecs_match, get_stream_codec_names, get_transcode_target, \
|
||||
transcode_can_satisfy_codecs, transcode_video_file, TRANSCODE_VIDEO_TARGETS, TRANSCODE_AUDIO_TARGETS, \
|
||||
verify_transcode_output, validate_transcode_request, REMOVE_VIDEO, FRAGMENT_DURATION_US
|
||||
from wrolpi.captions import FFMPEG_BIN
|
||||
from wrolpi.cmd import CommandResult
|
||||
|
||||
|
||||
|
|
@ -142,6 +143,8 @@ async def test_transcode_video_file(test_directory, async_client):
|
|||
assert '-c:a' in cmd and cmd[cmd.index('-c:a') + 1] == 'aac'
|
||||
# Attached-picture streams are excluded; a missing audio stream is tolerated.
|
||||
assert '0:V:0' in cmd and '0:a:0?' in cmd
|
||||
# The encode runs at the least CPU priority so it never starves the rest of WROLPi.
|
||||
assert cmd[:3] == ('/usr/bin/nice', '-n19', FFMPEG_BIN)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
|
|
|||
|
|
@ -392,7 +392,8 @@ async def _transcode_video_file(video_path: pathlib.Path, target_vcodec: Optiona
|
|||
|
||||
final_path = video_path.with_suffix(f'.{container}')
|
||||
tmp_path = transcode_tmp_path(video_path, container)
|
||||
cmd = (FFMPEG_BIN, '-y',
|
||||
cmd = ('/usr/bin/nice', '-n19', # Least priority, a transcode can take hours.
|
||||
FFMPEG_BIN, '-y',
|
||||
'-i', video_path,
|
||||
*map_args,
|
||||
*video_args,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue