Mình có niềm đam mê với các video mang tính giáo dục cao, giúp mình mở rộng kiến thức và hiểu biết về thế giới xung quanh. Một ngày nọ, khi dạo quanh tiktok (nghe cũng lạ), mình phát hiện ra một số kênh rất hay và hấp dẫn, có hàng trăm video về các chủ đề đa dạng như lịch sử, khoa học, lẫn tôn giáo. Từ đó mình có ý định làm 1 trang note lại những bài viết hay liên kết với những video, dùng làm tư liệu học tập.
Để thực hiện ý tưởng này, mình đã sử dụng ffmpeg - một công cụ mã nguồn mở cho phép chuyển đổi, mã hóa, lấy dữ liệu, phát trực tiếp các tập tin âm thanh và video.
FFmpeg là gì?
FFmpeg là một phần mềm xử lý audio, video đơn giản, miễn phí và hiệu quả nhất.
- FFmpeg là hoàn toàn miễn phí, mã nguồn mở. Do đó bạn hoàn toàn yên tâm sử dụng nó ở bất kì đầu mà không sợ vi phạm bản quyền.
- Sử dụng FFmpeg để xử lý audio, video - nghĩa là bạn phải sử dụng dòng lệnh thông qua Command line (cmd).
Để đơn giản hóa việc ứng dụng FFmpeg vào lập trình, Xabe.FFmpeg ra đời.
Xabe.FFmpeg là một thư viện .NET Core wrapper FFmpeg, giúp bạn xử lý các tập tin âm thanh và video mà không cần biết cách hoạt động của FFmpeg. Bạn có thể sử dụng các đoạn mã có sẵn trong Xabe.FFmpeg để thực hiện các công việc thông dụng như chuyển đổi định dạng, cắt ghép, xoay, đảo ngược, thay đổi kích thước, thêm phụ đề, thêm hiệu ứng… cho các tập tin âm thanh và video của bạn. Bạn cũng có thể truyền các tham số tùy chỉnh của bạn cho FFmpeg từ ứng dụng .NET Core của bạn. Xabe.FFmpeg có nhiều ưu điểm sau:
- Xabe.FFmpeg là một thư viện đa nền tảng
- Xabe.FFmpeg hỗ trợ phát trực tiếp các luồng âm thanh và video từ các nguồn khác nhau như webcam, màn hình, RTP hay RTSP.
- Xabe.FFmpeg cho phép bạn thay đổi chỉ các luồng cụ thể trong tập tin âm thanh và video hoặc xây dựng một luồng mới với các luồng từ các tập tin khác.
- Xabe.FFmpeg có tài liệu kỹ thuật rõ ràng và chi tiết, giúp bạn hiểu và sử dụng thư viện một cách hiệu quả.
- Xabe.FFmpeg miễn phí cho mọi dự án phi thương mại!
Bạn có thể xem thêm thông tin về Xabe.FFmpeg tại trang web chính thức hoặc GitHub.
Bạn cũng có thể xem tài liệu kỹ thuật để biết cách cài đặt và sử dụng Xabe.FFmpeg trong các ứng dụng .NET Core của bạn.
Convert video
Mình chưa biết FFmpeg hỗ trợ bao nhiêu định dạng video, nên đầu tiên mình thử convert file FLV sang mp4 mà thành công. Hiện nay muốn tìm 1 chương trình chuyển FLV không khó, nhưng đa số các chương trình phiên bản cũ
FLV là gì?
File FLV hay File Flash Video là một định dạng video nén được sử dụng rộng rãi trên mạng Internet, đặc biệt là trên các trang web chia sẻ video bởi định dạng này có thể giữ được chất lượng âm thanh, hình ảnh gốc trong khi dung lượng đã được nén lại khá nhỏ. Tuy nhiên khi HTML5 dần phổ biến, FLV từ từ bị loại bỏ dần. Có khá nhiều video hay thời kỳ đầu và những trang web video bên Trung Quốc vẫn còn sử dụng
Convert FLV video
Cài đặt packageInstall-Package Xabe.FFmpeg
Install-Package Xabe.FFmpeg.Downloader
Download FFmpeg và convert video
using System.Reflection;
using Xabe.FFmpeg;
using Xabe.FFmpeg.Downloader;
await Run();
await RunConversion();
static async Task Run()
{
Console.Out.WriteLine("[Start] Basic Conversion");
//Set directory where app should look for FFmpeg executables.
FFmpeg.SetExecutablesPath(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "ffmpeg.exe");
//Get latest version of FFmpeg. It's great idea if you don't know if you had installed FFmpeg.
await FFmpegDownloader.GetLatestVersion(FFmpegVersion.Official);
Console.Out.WriteLine("[End] Basic Conversion");
}
static async Task RunConversion()
{
var inputPath = "files/bi_mat_trai_tim.flv";
var fileInfo = new FileInfo(inputPath);
//Save file to the same location with changed extension
string outputFileName = Path.ChangeExtension(fileInfo.FullName, ".mp4");
var conversion = await FFmpeg.Conversions.FromSnippet.Convert(fileInfo.FullName, outputFileName);
await conversion.Start();
await Console.Out.WriteLineAsync($"Finished converion file [{inputPath}]");
}
Hoặc bạn có thể tự download file ffmpeg.exe theo đường dẫn: https://ffbinaries.com/api/v1/version/latest
Mình đã thử convert 1 file mov khoảng 4Gb sang mp4, kết quả thành công. File mp4 chỉ còn 1.65Gb.
Tham khảo
[Tutorial] .NET Video Converter | Xabe.FFmpeg
https://viblo.asia/p/tim-hieu-ffmpeg-va-cach-thuc-su-dung-ffmpeg-jvElaPOxZkw
https://www.youtube.com/watch?v=-mvImnnoJG0
Trả lờiXóa