Экстрактор аудио из видео выдает ошибку

Alexde

Client
Регистрация
03.11.2015
Сообщения
49
Благодарностей
20
Баллы
8
Вот такой простой код после запуска его выдает ошибки
126087
126088
C#:
using System;
using System.IO; // Для работы с файлами
using System.Collections.Generic; // Для использования списков

// Основная логика
string videoFolderPath = project.Variables["videoFolderPath"].Value;
string ffmpegPath = project.Variables["ffmpegPath"].Value;

// Проверяем, что пути заданы
if (string.IsNullOrEmpty(ffmpegPath) || string.IsNullOrEmpty(videoFolderPath))
{
    project.SendErrorToLog("Путь не задан.");
    return;
}

string[] videoFiles = Directory.GetFiles(videoFolderPath, "*.mp4");

if (videoFiles.Length == 0)
{
    project.SendErrorToLog("Нет видеофайлов.");
    return;
}

string processedFolderPath = Path.Combine(videoFolderPath, "ProcessedVideos");
if (!Directory.Exists(processedFolderPath))
{
    Directory.CreateDirectory(processedFolderPath);
}

// Логика обработки
foreach (string videoFile in videoFiles)
{
    string audioFilePath = Path.ChangeExtension(videoFile, ".mp3");

    // Пример команды для FFmpeg
    string arguments = $"-i \"{videoFile}\" -vn -acodec copy \"{audioFilePath}\"";
    
    // Запускаем FFmpeg через действия ZennoPoster
    project.SendInfoToLog($"Запуск команды: {arguments}");
    // Вы можете использовать стандартный вызов внешних программ в ZennoPoster через действия.
}
И даже проверка переменных и любой другой код после запуска первого уже выдают ошибки
Проверка переменных:
// Простая проверка переменных
string videoFolderPath = project.Variables["videoFolderPath"].Value;
string ffmpegPath = project.Variables["ffmpegPath"].Value;

if (string.IsNullOrEmpty(videoFolderPath) || string.IsNullOrEmpty(ffmpegPath))
{
    project.SendErrorToLog("Не все пути указаны.");
    return;
}

// Логирование
project.SendInfoToLog($"Путь к папке с видео: {videoFolderPath}");
project.SendInfoToLog($"Путь к FFmpeg: {ffmpegPath}");
 

Alexde

Client
Регистрация
03.11.2015
Сообщения
49
Благодарностей
20
Баллы
8
Хотя до этого работал этот код хорошо
Даже перезагрузка ПК не помогает
C#:
// Укажите путь к FFmpeg.exe
string ffmpegPath = @"C:\Path\To\ffmpeg.exe";

// Укажите путь к исходному видеофайлу
string videoFilePath = @"C:\Path\To\input_video.mp4";

// Укажите путь для сохранения MP3 файла
string outputAudioPath = @"C:\Path\To\output_audio.mp3";

// Параметры для FFmpeg: извлечение аудио из видео
А сейчас просто перестал работать, даже после перезагрузки ПК
string arguments = $"-i \"{videoFilePath}\" -q:a 0 -map a \"{outputAudioPath}\"";

// Настраиваем процесс для выполнения команды
System.Diagnostics.Process ffmpegProcess = new System.Diagnostics.Process();
ffmpegProcess.StartInfo.FileName = ffmpegPath;
ffmpegProcess.StartInfo.Arguments = arguments;
ffmpegProcess.StartInfo.UseShellExecute = false;
ffmpegProcess.StartInfo.CreateNoWindow = true;
ffmpegProcess.StartInfo.RedirectStandardOutput = true;
ffmpegProcess.StartInfo.RedirectStandardError = true;

// Запускаем процесс
ffmpegProcess.Start();

// Считываем вывод процесса (если нужно)
string output = ffmpegProcess.StandardOutput.ReadToEnd();
string errorOutput = ffmpegProcess.StandardError.ReadToEnd();

// Ожидаем завершения процесса
ffmpegProcess.WaitForExit();

// Проверяем результат
if (ffmpegProcess.ExitCode == 0)
{
    project.SendInfoToLog("Аудио успешно извлечено.");
}
else
{
    project.SendErrorToLog($"Ошибка извлечения аудио: {errorOutput}");
}
 

usboff

Client
Регистрация
25.08.2021
Сообщения
77
Благодарностей
41
Баллы
18
Ругается скорее всего вообще на другой C# кубик, нажмите ПКМ на любую ошибку и дальше "Показать действие."
 

Alexde

Client
Регистрация
03.11.2015
Сообщения
49
Благодарностей
20
Баллы
8
У меня открыт только 1 проект и 1 кубик в нем, вот все идет к нему
126089
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 732
Благодарностей
1 401
Баллы
113

Alexde

Client
Регистрация
03.11.2015
Сообщения
49
Благодарностей
20
Баллы
8

Alexde

Client
Регистрация
03.11.2015
Сообщения
49
Благодарностей
20
Баллы
8
Убрал эти строки ошибка исчезла но аудио не извлекается

C#:
// Проверяем, что пути заданы
if (string.IsNullOrEmpty(ffmpegPath) || string.IsNullOrEmpty(videoFolderPath))
{
    project.SendErrorToLog("Путь не задан.");
    return;
}

if (videoFiles.Length == 0)
{
    project.SendErrorToLog("Нет видеофайлов.");
    return;
}
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 480
Благодарностей
3 356
Баллы
113
Перепишите код нормально или обратитесь к его автору.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)