Fix set audio quality
This commit is contained in:
@@ -124,13 +124,16 @@ def set_audio_channel_total(audio_channel_total : int) -> Commands:
|
|||||||
|
|
||||||
def set_audio_quality(audio_encoder : AudioEncoder, audio_quality : int) -> Commands:
|
def set_audio_quality(audio_encoder : AudioEncoder, audio_quality : int) -> Commands:
|
||||||
if audio_encoder == 'aac':
|
if audio_encoder == 'aac':
|
||||||
audio_compression = round(10 - (audio_quality * 0.9))
|
audio_compression = round(2.0 - ((audio_quality / 100) * 1.9), 1)
|
||||||
return [ '-q:a', str(audio_compression) ]
|
return [ '-q:a', str(audio_compression) ]
|
||||||
if audio_encoder == 'libmp3lame':
|
if audio_encoder == 'libmp3lame':
|
||||||
audio_compression = round(9 - (audio_quality * 0.9))
|
audio_compression = round(9 - (audio_quality / 100) * 9)
|
||||||
return [ '-q:a', str(audio_compression) ]
|
return [ '-q:a', str(audio_compression) ]
|
||||||
if audio_encoder in [ 'libopus', 'libvorbis' ]:
|
if audio_encoder == 'libopus':
|
||||||
audio_compression = round((100 - audio_quality) / 10)
|
audio_bit_rate = round(64 + (audio_quality / 100) * (320 - 64))
|
||||||
|
return [ '-b:a', str(audio_bit_rate) + 'k' ]
|
||||||
|
if audio_encoder == 'libvorbis':
|
||||||
|
audio_compression = round(-1.0 + (audio_quality / 100) * 11, 1)
|
||||||
return [ '-q:a', str(audio_compression) ]
|
return [ '-q:a', str(audio_compression) ]
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
from shutil import which
|
from shutil import which
|
||||||
|
|
||||||
from facefusion import curl_builder, metadata
|
from facefusion import metadata
|
||||||
|
from facefusion.curl_builder import chain, head, run
|
||||||
|
|
||||||
|
|
||||||
def test_run() -> None:
|
def test_run() -> None:
|
||||||
user_agent = metadata.get('name') + '/' + metadata.get('version')
|
user_agent = metadata.get('name') + '/' + metadata.get('version')
|
||||||
|
|
||||||
assert curl_builder.run([]) == [ which('curl'), '--user-agent', user_agent, '--insecure', '--location', '--silent' ]
|
assert run([]) == [ which('curl'), '--user-agent', user_agent, '--insecure', '--location', '--silent' ]
|
||||||
|
|
||||||
|
|
||||||
def test_chain() -> None:
|
def test_chain() -> None:
|
||||||
commands = curl_builder.chain(
|
commands = chain(
|
||||||
curl_builder.head(metadata.get('url'))
|
head(metadata.get('url'))
|
||||||
)
|
)
|
||||||
|
|
||||||
assert commands == [ '-I', metadata.get('url') ]
|
assert commands == [ '-I', metadata.get('url') ]
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
from shutil import which
|
from shutil import which
|
||||||
|
|
||||||
from facefusion import ffmpeg_builder
|
from facefusion import ffmpeg_builder
|
||||||
|
from facefusion.ffmpeg_builder import chain, run, select_frame_range, set_audio_quality, set_audio_sample_size, set_stream_mode
|
||||||
|
|
||||||
|
|
||||||
def test_run() -> None:
|
def test_run() -> None:
|
||||||
assert ffmpeg_builder.run([]) == [ which('ffmpeg'), '-loglevel', 'error' ]
|
assert run([]) == [ which('ffmpeg'), '-loglevel', 'error' ]
|
||||||
|
|
||||||
|
|
||||||
def test_chain() -> None:
|
def test_chain() -> None:
|
||||||
commands = ffmpeg_builder.chain(
|
commands = chain(
|
||||||
ffmpeg_builder.set_progress()
|
ffmpeg_builder.set_progress()
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -16,17 +17,32 @@ def test_chain() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_stream_mode() -> None:
|
def test_stream_mode() -> None:
|
||||||
assert ffmpeg_builder.set_stream_mode('udp') == [ '-f', 'mpegts' ]
|
assert set_stream_mode('udp') == [ '-f', 'mpegts' ]
|
||||||
assert ffmpeg_builder.set_stream_mode('v4l2') == [ '-f', 'v4l2' ]
|
assert set_stream_mode('v4l2') == [ '-f', 'v4l2' ]
|
||||||
|
|
||||||
|
|
||||||
def test_select_frame_range() -> None:
|
def test_select_frame_range() -> None:
|
||||||
assert ffmpeg_builder.select_frame_range(0, None, 30) == [ '-vf', 'trim=start_frame=0,fps=30' ]
|
assert select_frame_range(0, None, 30) == [ '-vf', 'trim=start_frame=0,fps=30' ]
|
||||||
assert ffmpeg_builder.select_frame_range(None, 100, 30) == [ '-vf', 'trim=end_frame=100,fps=30' ]
|
assert select_frame_range(None, 100, 30) == [ '-vf', 'trim=end_frame=100,fps=30' ]
|
||||||
assert ffmpeg_builder.select_frame_range(0, 100, 30) == [ '-vf', 'trim=start_frame=0:end_frame=100,fps=30' ]
|
assert select_frame_range(0, 100, 30) == [ '-vf', 'trim=start_frame=0:end_frame=100,fps=30' ]
|
||||||
assert ffmpeg_builder.select_frame_range(None, None, 30) == [ '-vf', 'fps=30' ]
|
assert select_frame_range(None, None, 30) == [ '-vf', 'fps=30' ]
|
||||||
|
|
||||||
|
|
||||||
def test_audio_sample_size() -> None:
|
def test_audio_sample_size() -> None:
|
||||||
assert ffmpeg_builder.set_audio_sample_size(16) == [ '-f', 's16le', '-acodec', 'pcm_s16le' ]
|
assert set_audio_sample_size(16) == [ '-f', 's16le', '-acodec', 'pcm_s16le' ]
|
||||||
assert ffmpeg_builder.set_audio_sample_size(32) == [ '-f', 's32le', '-acodec', 'pcm_s32le' ]
|
assert set_audio_sample_size(32) == [ '-f', 's32le', '-acodec', 'pcm_s32le' ]
|
||||||
|
|
||||||
|
|
||||||
|
def test_set_audio_quality() -> None:
|
||||||
|
assert set_audio_quality('aac', 0) == [ '-q:a', '2.0' ]
|
||||||
|
assert set_audio_quality('aac', 50) == [ '-q:a', '1.1' ]
|
||||||
|
assert set_audio_quality('aac', 100) == [ '-q:a', '0.1' ]
|
||||||
|
assert set_audio_quality('libmp3lame', 0) == [ '-q:a', '9' ]
|
||||||
|
assert set_audio_quality('libmp3lame', 50) == [ '-q:a', '4' ]
|
||||||
|
assert set_audio_quality('libmp3lame', 100) == [ '-q:a', '0' ]
|
||||||
|
assert set_audio_quality('libopus', 0) == [ '-b:a', '64k' ]
|
||||||
|
assert set_audio_quality('libopus', 50) == [ '-b:a', '192k' ]
|
||||||
|
assert set_audio_quality('libopus', 100) == [ '-b:a', '320k' ]
|
||||||
|
assert set_audio_quality('libvorbis', 0) == [ '-q:a', '-1.0' ]
|
||||||
|
assert set_audio_quality('libvorbis', 50) == [ '-q:a', '4.5' ]
|
||||||
|
assert set_audio_quality('libvorbis', 100) == [ '-q:a', '10.0' ]
|
||||||
|
|||||||
Reference in New Issue
Block a user