Как перенести звук из одного mp4 файла в другой mp4 файл через FFMPEG на C#
Есть программа скачивает 2 файла, в ПЕРВОМ есть и звук и картинка, во ВТОРОМ только звук. Надо перенести звук из ПЕРВОГО файла во ВТОРОЙ (перезаписать или создать новый, как получится) используя библиотеку ffmpeg(если знаете другую библиотеку для таких задач, то посоветуйте)
Суть в том что я вообще не понимаю как работать с ffmpeg на C#, да документацию читал, но к результатам это не привело...
Простите за плохой вид кода, уже устал переписывать
Код на C#
using System.IO;
using System;
using VideoLibrary;
using System.Linq;
using FFmpeg.AutoGen;
using FFMpegCore;
class Program
{
static void Main(string[] args)
{
string uri = "https://www.youtube.com/watch?v=oGRmEKLnFIs";
var youTube = YouTube.Default;
var video = youTube.GetVideo(uri);
string fullName = video.FullName;
var videoInfos = youTube.GetAllVideosAsync(uri).GetAwaiter().GetResult();
var maxResolution = videoInfos.First(i => i.Resolution == videoInfos.Max(j => j.Resolution));
var audio = videoInfos.First(i => i.AudioBitrate == videoInfos.Max(j => j.AudioBitrate));
byte[] bytes_video = maxResolution.GetBytes();
byte[] bytes_audio = audio.GetBytes();
string video_path = @"C:\" + fullName + "V.mp4";
string audio_path = @"C:\" + fullName + "A.mp4";
string out_path = @"C:\Output.mp4";
File.WriteAllBytes(video_path, bytes_video);
File.WriteAllBytes(audio_path, bytes_audio);
File.WriteAllBytes(out_path, null);
MargeAudioVideo(video_path, audio_path, out_path);
}
static public void MargeAudioVideo(string path_video, string path_audio, string output)
{
//ffmpeg.avdevice_register_all();
Console.WriteLine("reg");
FFMpeg.ReplaceAudio(path_video, path_audio, output);
Console.WriteLine("end!");
}
}
Спасибо
Необработанное исключение: System.ComponentModel.Win32Exception: Не удается найти указанный файл
в System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
в System.Diagnostics.Process.Start()
в Instances.ProcessArguments.Start()
в Instances.Instance.Start(ProcessStartInfo startInfo, EventHandler`1 outputHandler, EventHandler`1 errorHandler)
в Instances.Instance.Finish(ProcessStartInfo startInfo, EventHandler`1 outputHandler, EventHandler`1 errorHandler)
в Instances.Instance.Finish(String path, String arguments, EventHandler`1 outputHandler, EventHandler`1 errorHandler)
в FFMpegCore.Helpers.FFProbeHelper.VerifyFFProbeExists(FFOptions ffMpegOptions)
в FFMpegCore.FFProbe.PrepareInstance(String arguments, FFOptions ffOptions)
в FFMpegCore.FFProbe.PrepareStreamAnalysisInstance(String filePath, FFOptions ffOptions)
в FFMpegCore.FFMpeg.ReplaceAudio(String input, String inputAudio, String output, Boolean stopAtShortest)
в Program.MargeAudioVideo(String path_video, String path_audio, String output) в C:\Users\vital\source\repos\SwiftLoaderMain\SwiftLoader\Program.cs:строка 42
в Program.Main(String[] args) в C:\Users\vital\source\repos\SwiftLoaderMain\SwiftLoader\Program.cs:строка 34