Как скачать видео с facecast.net | How download video from facecast.net

În timpul conferinței noastre, apăsăm butonul F12 și observăm că videoclipul este încărcat în segmente de o secundă. Atunci când facem clic pe unul dintre fișierele .ts, suntem întrebați unde dorim să salvăm. Această funcționalitate ne-a inspirat ideea de a descărca fiecare fișier .ts și de a le uni ulterior într-un singur videoclip complet.



Descărcarea manuală a fiecărui fișier .ts ar fi o sarcină foarte consumatoare de timp și nu este fezabilă în practică. Din acest motiv, am dezvoltat o aplicație care automatizează procesul de descărcare a tuturor fișierelor .ts în mod eficient și rapid.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace VideoDowloadTS
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Se solicită utilizatorului introducerea URL-ului de bază
            Console.WriteLine("Introduceti URL-ul de bază al fisierelor TS:");
            string urlBaza = Console.ReadLine();
            // Se solicită utilizatorului introducerea numărului N
            Console.WriteLine("Introduceti numărul N (ultimul număr al fisierului TS):");
            int n = int.Parse(Console.ReadLine());
            // Se solicită utilizatorului introducerea folderului de destinație
            Console.WriteLine("Introduceti folderul de destinație pentru fisierele TS:");
            string folderDestinatie = Console.ReadLine();
            // Se creează folderul de destinație dacă nu există
            if (!Directory.Exists(folderDestinatie))
            {
                Directory.CreateDirectory(folderDestinatie);
            }
            // Se descarcă fișierele TS de la 1 la N
            for (int i = 1; i <= n; i++)
            {
                string numeFisier = i + ".ts";
                string urlComplet = urlBaza + numeFisier;
                // Se descarcă fișierul
                using (WebClient client = new WebClient())
                {
                    client.DownloadFile(urlComplet, Path.Combine(folderDestinatie, numeFisier));
                }
                // Se afișează un mesaj de confirmare
                Console.WriteLine("Fisierul {0} a fost descarcat cu succes.", numeFisier);
            }
            // Se afișează un mesaj de finalizare
            Console.WriteLine("Toate fisierele TS au fost descarcate cu succes!");
            Console.ReadKey();
        }
    }
}

După ce au fost descărcate, se pune în discuție modalitatea de integrare a acestora într-un singur fișier video. Deși este posibil să se utilizeze o aplicație de editare video în acest scop, din experiență, acest proces este destul de complicat și solicită resurse considerabile ale calculatorului, mai ales în cazul unui număr mare de fișiere, cum ar fi peste 8000. Prin urmare, am dezvoltat o altă aplicație care automatizează procesul de unire a tuturor fișierelor video într-un singur fișier.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace UnireaVideo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Solicitarea directorului de fișiere de ieșire de la utilizator
            Console.WriteLine("Introduceti directorul de iesire pentru fisierul video concatenat:");
            string outputDirectoryPath = Console.ReadLine();

            // Solicitarea directorului care conține fișierele video de la utilizator
            Console.WriteLine("Introduceti directorul care contine fisierele video de concatenat:");
            string directoryPath = Console.ReadLine();

            // Lista de fișiere video
            List<string> videoFiles = Directory.GetFiles(directoryPath, "*.ts").ToList();

            // Sortarea fișierelor video în ordine crescătoare
            videoFiles.Sort((f1, f2) =>
            {
                int fileNum1, fileNum2;
                if (int.TryParse(Path.GetFileNameWithoutExtension(f1), out fileNum1) &&
                    int.TryParse(Path.GetFileNameWithoutExtension(f2), out fileNum2))
                {
                    return fileNum1.CompareTo(fileNum2);
                }
                else
                {
                    // Gestionarea fișierelor non-numerice sau a erorilor
                    Console.WriteLine($"Eroare: Numele fișierului '{f1}' sau '{f2}' nu conține un număr.");
                    return 0; // Ignorați fișierul
                }
            });

            // Numele fișierului video rezultat
            string outputFileName = Path.Combine(outputDirectoryPath, "video_final.mp4");

            // Concatenarea fișierelor video
            ConcatenateVideos(videoFiles, outputFileName);

            Console.WriteLine("Fisierele video au fost concatenate cu succes!");
            Console.WriteLine();
        }

        static void ConcatenateVideos(List<string> videoFiles, string outputFileName)
        {
            using (var outputFile = new FileStream(outputFileName, FileMode.Create))
            {
                foreach (var videoFile in videoFiles)
                {
                    Console.WriteLine(videoFile);
                    using (var inputFile = new FileStream(videoFile, FileMode.Open))
                    {
                        const int bufferSize = 8192; // Dimensiunea bufferului (se poate modifica)
                        byte[] buffer = new byte[bufferSize];
                        int bytesRead;
                        while ((bytesRead = inputFile.Read(buffer, 0, bufferSize)) > 0)
                        {
                            outputFile.Write(buffer, 0, bytesRead);
                        }
                    }
                }
            }
        }
    }
}

Descaracarea fisierelor .ts 
Linkul il copiem din descarcari: CTR+J

in aplicatie introducem aceast link doar fara denumirea fisierului .ts


introducem numarul cite fisiere .ts sunt (se poate de introdus si unum 9999) din motiv ca cind sistemul nu va gasi fisiere aplicatia va fi oprita.


introducem destinatia unde sa se salveze fisierele .ts



Dupa ce au fost salvate incepem sa le unim totate fisierile intr-un video final


Codul sursa: https://drive.google.com/file/d/1DsVNizoPvkBwwlb6N83GID7OgUbLEdq6/view?usp=sharing




Niciun comentariu: