Eliminare 'ffmpegHLS.py/ffmpeg_2.0.py'
parent
150e4bdb2b
commit
f29d8a16bb
|
@ -1,143 +0,0 @@
|
||||||
import sys
|
|
||||||
import pyfiglet
|
|
||||||
import pyfiglet.fonts
|
|
||||||
from rich.console import Console
|
|
||||||
from rich.table import Table
|
|
||||||
import os
|
|
||||||
import ffmpeg
|
|
||||||
import time
|
|
||||||
# import pkg_resources
|
|
||||||
# from pyimod03_importers import FrozenImporter
|
|
||||||
|
|
||||||
# if getattr(sys, 'frozen', False):
|
|
||||||
# pkg_resources.register_loader_type(FrozenImporter, pkg_resources.DefaultProvider)
|
|
||||||
|
|
||||||
console = Console()
|
|
||||||
|
|
||||||
class ConvertMultipleVideo():
|
|
||||||
def __init__(self):
|
|
||||||
self.files = []
|
|
||||||
self.convert_files_folder = ""
|
|
||||||
self.bitrate = ""
|
|
||||||
self.files_converted = 0
|
|
||||||
self.files_trovati = []
|
|
||||||
self.estensione_da_trovare = ""
|
|
||||||
self.estensione_da_convertire = ""
|
|
||||||
self.selected_profile_converter = ""
|
|
||||||
self.save_folder = ""
|
|
||||||
self.bitrate_list = {1:{"bitrate":"uguale","h265":"no","input_args":{"hwaccel": "nvdec","vcodec": "h264_cuvid","c:v": "h264_cuvid"},"output_args":{"vcodec": "h264_nvenc","c:v": "h264_nvenc","acodec": "aac","ab":"320k","max_muxing_queue_size":"9999"}}
|
|
||||||
,2:{"bitrate":"uguale","h265":"si","input_args":{"c:v": "hevc"},"output_args":{"vcodec": "h264_nvenc","c:v": "h264_nvenc","acodec": "aac","ab":"320k","pix_fmt":"yuv420p","max_muxing_queue_size":"9999"}}
|
|
||||||
,3:{"bitrate":"Scelta Utente","h265":"no","input_args":{"hwaccel": "nvdec","vcodec": "h264_cuvid","c:v": "h264_cuvid"},"output_args":{"vcodec": "h264_nvenc","c:v": "h264_nvenc","preset": "slow","crf": 23,"acodec": "aac","ab":"320k","tune":"film","b:v":"","max_muxing_queue_size":"9999"}}
|
|
||||||
,4:{"bitrate":"Scelta Utente","h265":"si","input_args":{"c:v": "hevc"},"output_args":{"vcodec": "h264_nvenc","c:v": "h264_nvenc","preset": "slow","crf": 23,"acodec": "aac","ab":"320k","tune":"film","b:v":"","pix_fmt":"yuv420p","max_muxing_queue_size":"9999"}}
|
|
||||||
,5:{"bitrate":"No NVENC (No GPU)","h265":"no","input_args":{},"output_args":{"vcodec":"copy","acodec": "aac","ab":"320k","strict":"2"},
|
|
||||||
},6:{"bitrate":"uguale (HLS)","h265":"no","input_args":{},"output_args":{"vcodec":"copy","acodec": "aac","start_number": 0,"hls_time":10,"hls_list_size":0,"f":"hls"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def startupMessage():
|
|
||||||
ascii_art = pyfiglet.figlet_format("# FFMPEG Video Converter #")
|
|
||||||
console.print(f"[bold green]{ascii_art}[/bold green]")
|
|
||||||
|
|
||||||
|
|
||||||
def cartella_save_file(self):
|
|
||||||
self.save_folder = console.input("[bold purple]Inserisci la cartella dove salvare i file [Premi ENTER o INVIO per usare la stessa cartella dei file] --> [/bold purple]")
|
|
||||||
if self.save_folder == "":
|
|
||||||
self.save_folder = self.convert_files_folder
|
|
||||||
if os.path.isdir(self.save_folder):
|
|
||||||
console.print(f"\nOk i file verranno salvati su {self.save_folder}",style="bold green")
|
|
||||||
else:
|
|
||||||
console.print("\n❌ La cartella non esiste! ❌ \nVerrá creata...",style="bold red")
|
|
||||||
time.sleep(0.3)
|
|
||||||
os.makedirs(self.save_folder)
|
|
||||||
console.print(f"\n✅ Cartella {self.save_folder} creata ✅...",style="bold green")
|
|
||||||
|
|
||||||
|
|
||||||
def convertVideo(self):
|
|
||||||
try:
|
|
||||||
console.input("\n[bold green]FFmpeg Video Converter Pronto. Premi ENTER per iniziare la conversione![/bold green]\n")
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
console.print("\nUscita dal programma...",style="bold red")
|
|
||||||
sys.exit()
|
|
||||||
try:
|
|
||||||
input_args = self.bitrate_list[self.selected_profile_converter]["input_args"]
|
|
||||||
output_args = self.bitrate_list[self.selected_profile_converter]["output_args"]
|
|
||||||
for files in os.listdir(self.convert_files_folder):
|
|
||||||
if files.endswith(self.estensione_da_trovare):
|
|
||||||
video = os.path.splitext(files)[0]
|
|
||||||
output = os.path.join(self.convert_files_folder, files)
|
|
||||||
stream = ffmpeg.input(os.path.join(self.convert_files_folder, files), **input_args)
|
|
||||||
stream = ffmpeg.output(stream, os.path.join(self.save_folder, '') + video + self.estensione_da_convertire, **output_args)
|
|
||||||
ffmpeg.run(stream)
|
|
||||||
self.files.append(files)
|
|
||||||
self.files_converted += 1
|
|
||||||
if self.files_converted >1:
|
|
||||||
console.print(f"\nI files {self.files} sono stati convertiti in {self.estensione_da_convertire} correttamente! ✅",style="bold green")
|
|
||||||
print()
|
|
||||||
console.print(f"\nIn totale sono stati convertiti {self.files_converted} elementi",style="bold green")
|
|
||||||
else:
|
|
||||||
print()
|
|
||||||
console.print(f"✅ Il file {files} é stato convertito in {video}{self.estensione_da_convertire} correttamente! ✅\n",style="bold green")
|
|
||||||
except:
|
|
||||||
console.print("\nErrore!\n",style="bold red")
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
|
|
||||||
def visualizza_codec(self):
|
|
||||||
console.print("\nSeleziona Il Bitrate...\nPossibili Scelte : \n",style="bold blue")
|
|
||||||
table = Table(show_header=True,header_style="bold green")
|
|
||||||
table.add_column("NUMERO SCELTA",style="blue",justify="center")
|
|
||||||
table.add_column("BITRATE",style="blue")
|
|
||||||
table.add_column("FILE IN H265",style="blue",justify="center")
|
|
||||||
for bitrate_id,bitrate_info in self.bitrate_list.items():
|
|
||||||
table.add_row(str(bitrate_id),str(bitrate_info["bitrate"]),str(bitrate_info["h265"]))
|
|
||||||
console.print(table)
|
|
||||||
|
|
||||||
|
|
||||||
def seleziona_codec(self):
|
|
||||||
try:
|
|
||||||
self.selected_profile_converter = int(console.input("[bold purple]Seleziona il numero scelto --> [/bold purple]"))
|
|
||||||
if self.selected_profile_converter == 3 or self.selected_profile_converter == 4:
|
|
||||||
self.bitrate = console.input("\n[bold purple]Seleziona Bitrate [Esempio : 1M 2M ecc...] --> [/bold purple]")
|
|
||||||
self.bitrate_list[self.selected_profile_converter]["output_args"]["b:v"] = self.bitrate
|
|
||||||
except:
|
|
||||||
print()
|
|
||||||
console.print("\nErrore!\n",style="bold red")
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
def files_da_convertire(self):
|
|
||||||
self.estensione_da_trovare = console.input("\n[bold purple]Inserisci un'estensione da cercare e convertire [Esempio : .mp4 .mkv ecc...] --> [/bold purple]")
|
|
||||||
self.estensione_da_convertire = console.input("\n[bold purple]Inserisci un'estensione per convertire i video [Esempio : .mp4 .mkv ecc...] --> [/bold purple]")
|
|
||||||
for files in os.listdir(self.convert_files_folder):
|
|
||||||
if files.endswith(self.estensione_da_trovare):
|
|
||||||
self.files_trovati.append(files)
|
|
||||||
console.print(f"\nAbbiamo trovato questi File nel formato {self.estensione_da_trovare} : {files}\n",style="bold green")
|
|
||||||
else:
|
|
||||||
console.print(f"\nIl file {files} non ha estensione {self.estensione_da_trovare}!",style="red")
|
|
||||||
if self.files_trovati == []:
|
|
||||||
console.print("\nNessun File Trovato da Convertire...\n",style="bold red")
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.cartella_save_file()
|
|
||||||
self.visualizza_codec()
|
|
||||||
self.seleziona_codec()
|
|
||||||
self.files_da_convertire()
|
|
||||||
self.convertVideo()
|
|
||||||
|
|
||||||
def initialize(self):
|
|
||||||
self.startupMessage()
|
|
||||||
try:
|
|
||||||
self.convert_files_folder = console.input("[bold purple]\nInserisci la cartella dove sono conservati i file --> [/bold purple]")
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
print()
|
|
||||||
console.print("\nUscita dal programma...\n",style="bold red")
|
|
||||||
sys.exit()
|
|
||||||
else:
|
|
||||||
self.run()
|
|
||||||
|
|
||||||
|
|
||||||
video = ConvertMultipleVideo()
|
|
||||||
video.initialize()
|
|
Loading…
Reference in New Issue