Compare commits

..

No commits in common. "bb22ffbaaee36e6840adcb9f926bcd0cb405fe2a" and "0d5a6cb6ba8059cb00eb1315f2a0b3f9da556ea2" have entirely different histories.

3 changed files with 10 additions and 31 deletions

View file

@ -16,7 +16,6 @@ class Command(BaseCommand):
parser.add_argument('--duration', action='store', dest='duration', default="3600", help='target duration of all fragments in seconds') parser.add_argument('--duration', action='store', dest='duration', default="3600", help='target duration of all fragments in seconds')
parser.add_argument('--single-file', action='store_true', dest='single_file', default=False, help='render to single video') parser.add_argument('--single-file', action='store_true', dest='single_file', default=False, help='render to single video')
parser.add_argument('--keep-audio', action='store_true', dest='keep_audio', default=False, help='keep independent audio tracks') parser.add_argument('--keep-audio', action='store_true', dest='keep_audio', default=False, help='keep independent audio tracks')
parser.add_argument('--stereo-downmix', action='store_true', dest='stereo_downmix', default=False, help='stereo downmix')
parser.add_argument('--debug', action='store_true', dest='debug', default=False, help='output more info') parser.add_argument('--debug', action='store_true', dest='debug', default=False, help='output more info')
def handle(self, **options): def handle(self, **options):

View file

@ -18,7 +18,6 @@ class Command(BaseCommand):
parser.add_argument('--no-video', action='store_true', dest='no_video', default=False, help='don\'t render video') parser.add_argument('--no-video', action='store_true', dest='no_video', default=False, help='don\'t render video')
parser.add_argument('--single-file', action='store_true', dest='single_file', default=False, help='render to single video') parser.add_argument('--single-file', action='store_true', dest='single_file', default=False, help='render to single video')
parser.add_argument('--keep-audio', action='store_true', dest='keep_audio', default=False, help='keep independent audio tracks') parser.add_argument('--keep-audio', action='store_true', dest='keep_audio', default=False, help='keep independent audio tracks')
parser.add_argument('--stereo-downmix', action='store_true', dest='stereo_downmix', default=False, help='stereo downmix')
parser.add_argument('--debug', action='store_true', dest='debug', default=False, help='output more info') parser.add_argument('--debug', action='store_true', dest='debug', default=False, help='output more info')
def handle(self, **options): def handle(self, **options):

View file

@ -575,37 +575,19 @@ def render_all(options):
"-filter_complex", "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[a]", "-filter_complex", "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[a]",
"-map", "[a]", "-c:a", "aac", fragment_prefix / "audio-5.1.mp4" "-map", "[a]", "-c:a", "aac", fragment_prefix / "audio-5.1.mp4"
]) ])
audio_front = "audio-5.1.mp4"
audio_back = "audio-back.wav"
copy = '-c'
if options["stereo_downmix"]:
cmds.append([
"ffmpeg", "-y",
"-nostats", "-loglevel", "error",
"-i", fragment_prefix / "audio-front.wav",
"-i", fragment_prefix / "audio-center.wav",
"-i", fragment_prefix / "audio-rear.wav",
"-i", fragment_prefix / audio_back,
"-filter_complex", "[0:a][1:a][2:a][3:a]amerge=inputs=2[a]",
"-map", "[a]", '-ac', '2', fragment_prefix / "audio-stereo.wav"
])
audio_front = "audio-stereo.wav"
audio_back = "audio-stereo.wav"
copy = '-c:v'
cmds.append([ cmds.append([
"ffmpeg", "-y", "ffmpeg", "-y",
"-nostats", "-loglevel", "error", "-nostats", "-loglevel", "error",
"-i", fragment_prefix / "front.mp4", "-i", fragment_prefix / "front.mp4",
"-i", fragment_prefix / audio_front, "-i", fragment_prefix / "audio-5.1.mp4",
copy, "copy", "-c", "copy",
fragment_prefix / "front-mixed.mp4", fragment_prefix / "front-5.1.mp4",
]) ])
cmds.append([ cmds.append([
"ffmpeg", "-y", "ffmpeg", "-y",
"-nostats", "-loglevel", "error", "-nostats", "-loglevel", "error",
"-i", fragment_prefix / "back.mp4", "-i", fragment_prefix / "back.mp4",
"-i", fragment_prefix / audio_back, "-i", fragment_prefix / "audio-back.wav",
"-c:v", "copy", "-c:v", "copy",
fragment_prefix / "back-audio.mp4", fragment_prefix / "back-audio.mp4",
]) ])
@ -616,7 +598,7 @@ def render_all(options):
for a, b in ( for a, b in (
("back-audio.mp4", "back.mp4"), ("back-audio.mp4", "back.mp4"),
("front-mixed.mp4", "front.mp4"), ("front-5.1.mp4", "back.mp4"),
): ):
duration_a = ox.avinfo(str(fragment_prefix / a))['duration'] duration_a = ox.avinfo(str(fragment_prefix / a))['duration']
duration_b = ox.avinfo(str(fragment_prefix / b))['duration'] duration_b = ox.avinfo(str(fragment_prefix / b))['duration']
@ -625,7 +607,7 @@ def render_all(options):
print('!!', duration_b, fragment_prefix / b) print('!!', duration_b, fragment_prefix / b)
sys.exit(-1) sys.exit(-1)
shutil.move(fragment_prefix / "back-audio.mp4", fragment_prefix / "back.mp4") shutil.move(fragment_prefix / "back-audio.mp4", fragment_prefix / "back.mp4")
shutil.move(fragment_prefix / "front-mixed.mp4", fragment_prefix / "front.mp4") shutil.move(fragment_prefix / "front-5.1.mp4", fragment_prefix / "front.mp4")
if options["keep_audio"]: if options["keep_audio"]:
shutil.move(fragment_prefix / "audio-center.wav", fragment_prefix / "vocals.wav") shutil.move(fragment_prefix / "audio-center.wav", fragment_prefix / "vocals.wav")
shutil.move(fragment_prefix / "audio-front.wav", fragment_prefix / "foley.wav") shutil.move(fragment_prefix / "audio-front.wav", fragment_prefix / "foley.wav")
@ -635,7 +617,6 @@ def render_all(options):
"audio-center.wav", "audio-rear.wav", "audio-center.wav", "audio-rear.wav",
"audio-front.wav", "audio-back.wav", "back-audio.mp4", "audio-front.wav", "audio-back.wav", "back-audio.mp4",
"fl.wav", "fr.wav", "fc.wav", "lfe.wav", "bl.wav", "br.wav", "fl.wav", "fr.wav", "fc.wav", "lfe.wav", "bl.wav", "br.wav",
"audio-stereo.wav",
): ):
fn = fragment_prefix / fn fn = fragment_prefix / fn
if os.path.exists(fn): if os.path.exists(fn):
@ -699,7 +680,7 @@ def render_all(options):
"-i", base_prefix / "front.mp4", "-i", base_prefix / "front.mp4",
"-i", base_prefix / "audio-5.1.mp4", "-i", base_prefix / "audio-5.1.mp4",
"-c", "copy", "-c", "copy",
base_prefix / "front-mixed.mp4", base_prefix / "front-5.1.mp4",
]) ])
cmds.append([ cmds.append([
"ffmpeg", "-y", "ffmpeg", "-y",
@ -716,7 +697,7 @@ def render_all(options):
for a, b in ( for a, b in (
("back-audio.mp4", "back.mp4"), ("back-audio.mp4", "back.mp4"),
("front-mixed.mp4", "back.mp4"), ("front-5.1.mp4", "back.mp4"),
): ):
duration_a = ox.avinfo(str(base_prefix / a))['duration'] duration_a = ox.avinfo(str(base_prefix / a))['duration']
duration_b = ox.avinfo(str(base_prefix / b))['duration'] duration_b = ox.avinfo(str(base_prefix / b))['duration']
@ -725,7 +706,7 @@ def render_all(options):
print('!!', duration_b, base_prefix / b) print('!!', duration_b, base_prefix / b)
sys.exit(-1) sys.exit(-1)
shutil.move(base_prefix / "back-audio.mp4", base_prefix / "back.mp4") shutil.move(base_prefix / "back-audio.mp4", base_prefix / "back.mp4")
shutil.move(base_prefix / "front-mixed.mp4", base_prefix / "front.mp4") shutil.move(base_prefix / "front-5.1.mp4", base_prefix / "front.mp4")
if options["keep_audio"]: if options["keep_audio"]:
shutil.move(base_prefix / "audio-center.wav", base_prefix / "vocals.wav") shutil.move(base_prefix / "audio-center.wav", base_prefix / "vocals.wav")
shutil.move(base_prefix / "audio-front.wav", base_prefix / "foley.wav") shutil.move(base_prefix / "audio-front.wav", base_prefix / "foley.wav")
@ -867,7 +848,7 @@ def render_infinity(options):
"max-items": 30, "max-items": 30,
"no_video": False, "no_video": False,
} }
for key in ("prefix", "duration", "debug", "single_file", "keep_audio", "stereo_downmix"): for key in ("prefix", "duration", "debug", "single_file", "keep_audio"):
state[key] = options[key] state[key] = options[key]
while True: while True: