6 changed files with 113 additions and 27 deletions
			
			
		@ -0,0 +1,51 @@ | 
				
			|||
using Apewer; | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.IO; | 
				
			|||
using System.Text; | 
				
			|||
 | 
				
			|||
namespace Apewer.Run | 
				
			|||
{ | 
				
			|||
 | 
				
			|||
    public class Batch | 
				
			|||
    { | 
				
			|||
 | 
				
			|||
        public Batch() => ConvertBreakingBad(); | 
				
			|||
 | 
				
			|||
        public void ConvertBreakingBad() | 
				
			|||
        { | 
				
			|||
            var paths = StorageUtility.GetSubFiles(@"E:\Breaking Bad"); | 
				
			|||
            var outdir = @"D:\temp\bb"; | 
				
			|||
            foreach (var path in paths) | 
				
			|||
            { | 
				
			|||
                var name = Path.GetFileName(path); | 
				
			|||
                Console.Title = name; | 
				
			|||
                Console.Clear(); | 
				
			|||
 | 
				
			|||
                if (name.EndsWith(".mkv")) | 
				
			|||
                { | 
				
			|||
                    var mp4path = Path.Combine(outdir, name.Replace(".mkv", ".mp4")); | 
				
			|||
                    if (StorageUtility.FileExists(mp4path)) continue; | 
				
			|||
 | 
				
			|||
                    var cmd = "ffmpeg.exe"; | 
				
			|||
                    var arg = $"-i \"{path}\" -vcodec copy -acodec copy \"{mp4path}\""; | 
				
			|||
                    WindowsUtility.RunConsole(cmd, arg, (s) => Console.WriteLine(s)); | 
				
			|||
                    continue; | 
				
			|||
                } | 
				
			|||
 | 
				
			|||
                if (name.EndsWith(".srt")) | 
				
			|||
                { | 
				
			|||
                    continue; | 
				
			|||
                    var srtpath = Path.Combine(outdir, name); | 
				
			|||
                    var vttpath = Path.Combine(outdir, name.Replace(".srt", ".vtt")); | 
				
			|||
                    var text = StorageUtility.ReadFile(path).ToText(Encoding.Default); | 
				
			|||
                    StorageUtility.WriteFile(srtpath, text.ToBinary()); | 
				
			|||
                    WindowsUtility.RunConsole("ffmpeg.exe", $"-i \"{srtpath}\" \"{vttpath}\"", (s) => Console.WriteLine(s)); | 
				
			|||
                    continue; | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
} | 
				
			|||
					Loading…
					
					
				
		Reference in new issue