Files
ffmpeg_collection/audio_rm_drop.py
Elghinnarisa d4d12e2d41 updated
2022-09-09 20:18:34 +02:00

55 lines
1.2 KiB
Python

import re
import subprocess
import sys
from pathlib import Path
import os
regex = re.compile("Stream #0:\d(\(\w*\))?: Audio:.*")
droppedFile = sys.argv[1]
droppedName = Path(droppedFile).name
skipto = " -ss "
#droppedFile = "test.mkv"
#skip first part of sys.argv since it points to script location
arguments = sys.argv[1:]
for i, each in enumerate(arguments):
arg_list = 'ffprobe.exe -i "{each}"'.format(each=each)
cmd = subprocess.Popen(arg_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='UTF-8')
subprocess_err = cmd.communicate()[1]
print("file", i+1)
for r, match in enumerate(regex.finditer(subprocess_err)):
print("Track", r, match.group(0))
print('\n')
x = (int(x) for x in input ("Enter tracks to keep: ").split())
track = "".join(" -map 0:a:{}".format(y) for y in x)
for each in arguments:
path = each
basename = os.path.basename(path)
arg_list = 'ffmpeg.exe -i "{each}" -map 0:v {track} -c copy -map 0:s "E:/Projects/ffmpeg_tests/audio_tracks/out/{basename}"'.format(each=each, track=track, basename=basename)
print(arg_list)
subprocess.run(arg_list)
input("press enter to exit")