Python ruta no encontrada
Phil_1857 Mensajes publicados 1883 Fecha de registro Estado Miembro Última intervención -
Hola a todos, recibí un código Python que le pedí a un amigo. Este permite modificar ligeramente un vídeo en una carpeta INPUT y sacarlo cambiado en una carpeta OUTPUT después. En su PC funciona, pero en el mío tengo un problema con la ruta de los archivos.
Aquí está el código Python =>
import cv2 import numpy as np import random from moviepy.editor import VideoFileClip def get_exposure_preset_parameters(preset): exposure_presets = { "Sutil": (0.9, 1.1), "Ligero": (0.8, 1.2), "Moderado": (0.7, 1.3), "Fuerte": (0.5, 1.5), } return exposure_presets.get(preset, (0.8, 1.2)) def get_brightness_preset_parameters(preset): brightness_presets = { "Sutil": (-5, 5), "Ligero": (-10, 10), "Moderado": (-15, 15), "Fuerte": (-30, 30), } return brightness_presets.get(preset, (-10, 10)) def get_contrast_preset_parameters(preset): contrast_presets = { "Sutil": (0.9, 1.1), "Ligero": (0.8, 1.2), "Moderado": (0.7, 1.3), "Fuerte": (0.5, 1.5), } return contrast_presets.get(preset, (0.8, 1.2)) def get_saturation_preset_parameters(preset): saturation_presets = { "Sutil": (0.8, 1.2), "Ligero": (0.7, 1.3), "Moderado": (0.5, 1.5), "Fuerte": (0.4, 1.6), } return saturation_presets.get(preset, (0.7, 1.3)) def print_video_parameters( video_index, exposure_factor, brightness_factor, contrast_factor, saturation_factor, mirror_effect, noise_level, rotation_angle ): print( f"Vídeo {video_index + 1} generado con éxito, " "metadatos eliminados, protección anti-sombra activada." ) print(f"Parámetros utilizados :") print(f"Exposición : {exposure_factor}") print(f"Luminosidad : {brightness_factor}") print(f"Contraste : {contrast_factor}") print(f"Saturación : {saturation_factor}") print(f"Efecto espejo : {'Activado' if mirror_effect else 'Desactivado'}") print(f"Nivel de ruido : {noise_level}") print(f"Ángulo de rotación : {rotation_angle}\n") def add_noise(frame, level): h, w, c = frame.shape noise = np.random.normal(0, level, (h, w, c)) noisy_frame = np.clip(frame + noise, 0, 255) return noisy_frame.astype(np.uint8) def rotate_video(frame, angle): h, w, _ = frame.shape center = (w // 2, h // 2) rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0) rotated_frame = cv2.warpAffine(frame, rotation_matrix, (w, h)) return rotated_frame def adjust_video_parameters_with_presets( input_video_path, output_video_path, exposure_preset, brightness_preset, contrast_preset, saturation_preset, mirror_effect=False, noise_level=None, rotation_angle=0 ): exposure_range = get_exposure_preset_parameters(exposure_preset) brightness_range = get_brightness_preset_parameters(brightness_preset) contrast_range = get_contrast_preset_parameters(contrast_preset) saturation_range = get_saturation_preset_parameters(saturation_preset) NUMBER_OF_VIDEOS = 5 cap = cv2.VideoCapture(input_video_path) width = int(cap.get(3)) height = int(cap.get(4)) fps = cap.get(5) fourcc = cv2.VideoWriter_fourcc(*'XVID') print(f"Ruta del vídeo de entrada : {input_video_path}") print(f"Ruta de salida : {output_video_path}") print(f"Ancho del vídeo : {width}") print(f"Alto del vídeo : {height}") print(f"FPS del vídeo : {fps}") print(f"Efecto espejo : {'Activado' if mirror_effect else 'Desactivado'}") print(f"Nivel de ruido : {noise_level}\n") for i in range(NUMBER_OF_VIDEOS): exposure_factor = random.uniform(*exposure_range) brightness_factor = random.uniform(*brightness_range) contrast_factor = random.uniform(*contrast_range) saturation_factor = random.uniform(*saturation_range) out = cv2.VideoWriter( f"{output_video_path}_{i}.mp4", fourcc, fps, (width, height) ) while True: ret, frame = cap.read() if not ret: break frame = cv2.convertScaleAbs( frame, alpha=contrast_factor, beta=brightness_factor ) hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) hsv[:, :, 1] = hsv[:, :, 1] * saturation_factor frame = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR) if mirror_effect: frame = cv2.flip(frame, 1) if noise_level is not None: frame = add_noise(frame, noise_level) frame = rotate_video(frame, rotation_angle) out.write(frame) out.release() print_video_parameters( i, exposure_factor, brightness_factor, contrast_factor, saturation_factor, mirror_effect, noise_level, rotation_angle ) cap.set(cv2.CAP_PROP_POS_FRAMES, 0) cap.release() cv2.destroyAllWindows() def remove_metadata(input_video_path, output_video_path): video_clip = VideoFileClip(input_video_path) video_clip.write_videofile( output_video_path, codec="libx264", audio_codec="aac", remove_temp=True, logger=None ) # Ejemplo de uso con efectos espejo, # ruido y rotación elegidos manualmente input_video_path = 'c:/Users/Eleve/Desktop/BOT_Tiktok/Tiktok_INPUT/Fichero_entrada.mp4' output_video_path = 'c:/Users/Eleve/Desktop/BOT_Tiktok/Tiktok_OUTPUT/Fichero_salida.mp4' exposure_preset = "Sutil" brightness_preset = "Ligero" contrast_preset = "Moderado" saturation_preset = "Ligero" rotation_angle = 0 # Ángulo de rotación en grados adjust_video_parameters_with_presets( input_video_path, output_video_path, exposure_preset, brightness_preset, contrast_preset, saturation_preset, mirror_effect=False, noise_level=None, rotation_angle=rotation_angle ) Gracias de antemano
Coloración sintáctica añadida por la moderación.
5 respuestas
En vista de la descripción y sin más precisión, sospecho que
input_video_path y/o output_video_path no apuntan a un archivo/carpeta que existe.
Intervengo principalmente en VB6, VB.NET y C#, pero la moderación a menudo me lleva a otros lenguajes.
En VB.NET, piensa en activar "Option Explicit" y "Option Strict".
hola,
no has precisado el mensaje de error exacto.
¿puedes probar esto?
import os def pf(path): r=os.path.exists(path) if r : print(path + " existe.") else: print (path + " no existe.") chem1='c:/Users/Eleve/Desktop/BOT_Tiktok/Tiktok_INPUT/Fichier_entree.mp4' pf(chem1) chem1='c:/Users/Eleve/Desktop/BOT_Tiktok/Tiktok_OUTPUT pf(chem2)
Hola,
Muéstranos el mensaje de error.
¿Tienes un usuario de Windows que se llama Eleve en tu PC? ¿Y es con ese usuario con el que estás conectado para ejecutar el programa?
En modo línea de comandos, ejecuta el siguiente comando:
dir c:\Users\Eleve\Desktop\BOT_Tiktok\Tiktok_INPUT\ Nota, según el símbolo del sistema que puedes ver en tu imagen
ya estás en C:\users\Elève
siempre puedes escribir
cd Desktop\BOT_Tiktok\Tiktok_INPUT
y cuando el símbolo del sistema se parezca a esto:
C:\users\Elève\Desktop\BOT_Tiktok\Tiktok_INPUT >
escribirás
dir
En tu imagen del 31/12 a las 17h48, se veía el siguiente prompt:
C:\users\Elève>
mostrando que estás en la carpeta Elève
Te propuse entonces el 1 de enero a las 11h57 que te colocaras en la carpeta
Desktop\BOT_Tiktok\Tiktok_INPUT
haciendo
cd Desktop\BOT_Tiktok\Tiktok_INPUT
Sin embargo, en este mensaje, se ve en tu imagen el prompt
C:\users\Elève\Desktop\BOT_Tiktok\Tiktok_INPUT>
mostrando que ya estás en Tiktok_INPUT !!!!
por lo tanto, evidentemente, si haces, desde esta carpeta:
cd Desktop\BOT_Tiktok\Tiktok_INPUT
¡no funcionará!
No existe una carpeta
C:\users\Elève\Desktop\BOT_Tiktok\Tiktok_INPUT\Desktop\BOT_Tiktok\Tiktok_INPUT
Lo que es seguro es que si el archivo se llama realmente "Elève"
con un acento grave sobre la "e", hay que escribir:
input_video_path = 'C:\Users\Elève\Desktop\BOT_Tiktok\Tiktok_INPUT\Fichier_entree.mp4'
Lo mismo con output_video_path ....
De acuerdo, eso se ha cambiado, está bien.
Mira cuando busco la ubicación de mi video en mis archivos:

Y también probé escribir esto en la terminal:
C:/Users/Elève/Desktop/BOT_Tiktok/Tiktok_INPUT/Fichier_entree.mp4
y se me abrió el video.
Así que eso fue para el video de entrada y ahora cuando escribo:
C:/Users/Elève/Desktop/BOT_Tiktok/Tiktok_INPUT/Fichier_sortie.mp4
para el video de salida, me dice eso. (sabendo que el video "Fichier_entree.mp4" no existe a diferencia del input "Fichier_entree.mp4"):
-
Sony wh-1000xm5 que no enciende después de mojarse.
a las 19:27 -
Puerto usb ——> usb serie
a las 18:42 -
Problema de conexión con mi pc a través del wifi
a las 18:38 -
Problema de texturas en enshrouded
a las 18:17 -
Estilo de numeración de lista
a las 17:51 -
No puedo volver a poner los cojines.
a las 17:41 -
Imposible agregar una cuenta de correo en outlook.
a las 17:20 -
¿vale la pena la aplicación autodoc?
a las 17:07 -
¿por qué los sitios web gubernamentales franceses son hackeados?
a las 16:33 -
Atlantis version light, la alternativa gratuita a word para pc antiguos
a las 16:17



Sí, ese es exactamente el problema. Sin embargo, he puesto el archivo en el lugar correcto y he indicado la ruta correcta hacia el archivo. Pero está bloqueado... Realmente no sé qué más hacer.
Estoy en una PC con Windows 11, no sé si eso tiene que ver con la notación del camino