精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C# 使用FFmpeg為視頻添加水印的完整指南

開發 前端
視頻水印是保護版權、標識視頻來源的重要技術。本文將詳細介紹如何使用C#和FFmpeg為視頻添加水印,并提供多種實現方式。

視頻水印是保護版權、標識視頻來源的重要技術。本文將詳細介紹如何使用C#和FFmpeg為視頻添加水印,并提供多種實現方式。

準備工作

環境依賴

  • .NET Framework 4.7.2 或更高版本
  • FFmpeg(需要下載并配置系統環境變量)
  • NuGet包:Xabe.FFmpeg

安裝NuGet包

使用Package Manager Console安裝:

Install-Package Xabe.FFmpeg

基本水印實現

文字水印

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xabe.FFmpeg;

namespace App08
{
    public class VideoWatermarker
    {

        /// <summary>  
        /// 為視頻添加文字水印  
        /// </summary>  
        /// <param name="inputVideo">輸入視頻路徑</param>  
        /// <param name="outputVideo">輸出視頻路徑</param>  
        /// <param name="watermarkText">水印文字內容</param>  
        public async Task AddTextWatermarkAsync(
            string inputVideo,
            string outputVideo,
            string watermarkText)
        {
            try
            {
                // 確保已設置 FFmpeg 執行文件路徑  
                FFmpeg.SetExecutablesPath("D:\\Software\\ffmpeg-master-latest-win64-gpl-shared\\bin");

                // 創建轉換  
                IMediaInfo mediaInfo = await FFmpeg.GetMediaInfo(inputVideo);

                // 配置轉換參數  
                var conversion = FFmpeg.Conversions.New()
                    .AddStream(mediaInfo.VideoStreams)
                    .AddStream(mediaInfo.AudioStreams)
                    .AddParameter($"-vf \"drawtext=fontfile=msyh.ttc:" +
                        $"text='{watermarkText}':" +
                        "fontcolor=white:" +
                        "fontsize=24:" +
                        "box=1:" +
                        "boxcolor=black@0.5:" +
                        "boxborderw=5:" +
                        "x=(w-text_w)/2:" +
                        "y=(h-text_h)/2\"")
                    .SetOutput(outputVideo);

                // 執行轉換  
                await conversion.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"水印添加失敗:{ex.Message}");
                throw;
            }
        }
    }
}
static async Task Main(string[] args)
{
    VideoWatermarker watermarker = new VideoWatermarker();
    await watermarker.AddTextWatermarkAsync("D:\\Video\\1.mp4", "d:\\output.mp4", "IDIOSOFT");
}

圖片水印

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Xabe.FFmpeg;

namespace App08
{
    public class ImageWatermarker
    {
        public async Task AddImageWatermarkAsync(
            string inputVideo,
            string outputVideo,
            string watermarkImage)
        {
            try
            {
                // 設置 FFmpeg 路徑  
                FFmpeg.SetExecutablesPath("D:\\Software\\ffmpeg-master-latest-win64-gpl-shared\\bin");

                // 創建轉換配置  
                IConversion conversion = FFmpeg.Conversions.New()
                    .AddParameter($"-i \"{inputVideo}\" -i \"{watermarkImage}\" " +
                                $"-filter_complex \"[0:v][1:v] overlay=W-w-10:10\" " +
                                $"-c:a copy")
                    .SetOutput(outputVideo);

                // 添加進度報告  
                conversion.OnProgress += (sender, args) =>
                {
                    var percent = args.Percent;
                    Console.WriteLine($"處理進度: {percent:F1}%");
                };

                // 添加完成處理程序  
                conversion.OnDataReceived += (sender, args) =>
                {
                    if (!string.IsNullOrEmpty(args.Data))
                    {
                        Console.WriteLine($"FFmpeg輸出: {args.Data}");
                    }
                };

                // 執行轉換  
                await conversion.Start();

                Console.WriteLine("水印添加成功!");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"圖片水印添加失敗:{ex.Message}");
                if (ex.InnerException != null)
                {
                    Console.WriteLine($"內部錯誤:{ex.InnerException.Message}");
                }
                throw;
            }
        }
    }
}

如果需要調整水印位置,可以修改overlay參數:

  • 右上角:overlay=W-w-10:10
  • 左下角:overlay=10:H-h-10
  • 右下角:overlay=W-w-10:H-h-10
  • 居中:overlay=(W-w)/2:(H-h)/2

其中:

  • W: 視頻寬度
  • H: 視頻高度
  • w: 水印寬度
  • h: 水印高度

高級水印技巧

動態水印位置

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Xabe.FFmpeg;

namespace App08
{
    public class ImageWatermarker
    {
        public async Task AddImageWatermarkAsync(
            string inputVideo,
            string outputVideo,
            string watermarkImage)
        {
            try
            {
                // 設置 FFmpeg 路徑  
                FFmpeg.SetExecutablesPath("D:\\Software\\ffmpeg-master-latest-win64-gpl-shared\\bin");

                // 創建轉換配置  
                IConversion conversion = FFmpeg.Conversions.New()
                    .AddParameter($"-i \"{inputVideo}\" -i \"{watermarkImage}\" " +  // Added input video parameter  
                                "-filter_complex \"" +
                                "[0:v][1:v]overlay='if(gte(t,2),main_w-overlay_w-10,10):" +
                                "if(gte(t,2),main_h-overlay_h-10,10)'" +
                                "\" -codec:a copy")
                    .SetOutput(outputVideo);

                // 添加進度報告  
                conversion.OnProgress += (sender, args) =>
                {
                    var percent = args.Percent;
                    Console.WriteLine($"處理進度: {percent:F1}%");
                };

                // 添加完成處理程序  
                conversion.OnDataReceived += (sender, args) =>
                {
                    if (!string.IsNullOrEmpty(args.Data))
                    {
                        Console.WriteLine($"FFmpeg輸出: {args.Data}");
                    }
                };

                // 執行轉換  
                await conversion.Start();

                Console.WriteLine("水印添加成功!");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"圖片水印添加失敗:{ex.Message}");
                if (ex.InnerException != null)
                {
                    Console.WriteLine($"內部錯誤:{ex.InnerException.Message}");
                }
                throw;
            }
        }


    }
}

圖片圖片

// 創建轉換配置  
IConversion conversion = FFmpeg.Conversions.New()
    .AddParameter($"-i \"{inputVideo}\" -i \"{watermarkImage}\" " +
                "-filter_complex \"" +
                "[0:v][1:v]overlay=" +
                "'if(lt(mod(t,8),2),10," +                           // 0-2秒:左上角  
                "if(lt(mod(t,8),4),main_w-overlay_w-10," +          // 2-4秒:右上角  
                "if(lt(mod(t,8),6),10," +                           // 4-6秒:左下角  
                "main_w-overlay_w-10))):" +                         // 6-8秒:右下角  
                "if(lt(mod(t,8),2),10," +                           // 0-2秒:左上角  
                "if(lt(mod(t,8),4),10," +                           // 2-4秒:右上角  
                "if(lt(mod(t,8),6),main_h-overlay_h-10," +          // 4-6秒:左下角  
                "main_h-overlay_h-10)))'" +                         // 6-8秒:右下角  
                "\" -codec:a copy")
    .SetOutput(outputVideo);

參數說明:

水印位置循環邏輯:

使用mod(t,8)將時間分成8秒一個循環,然后在這8秒內分配四個不同的位置

透明度控制

// 創建轉換配置  
IConversion conversion = FFmpeg.Conversions.New()
    .AddParameter($"-i \"{inputVideo}\" -i {watermarkImage} " +
    "-filter_complex \"" +
    "[1:v]format=rgba,colorchannelmixer=aa=0.5[watermark];" +
    "[0:v][watermark]overlay=10:10" +
    "\" -codec:a copy")
    .SetOutput(outputVideo);

注意事項

  • 確保FFmpeg正確安裝
  • 處理大視頻文件時注意內存占用
  • 水印不應過度遮擋視頻內容

結論

通過C#和FFmpeg,我們可以靈活地為視頻添加各種類型的水印,保護內容并增加版權標識。

責任編輯:武曉燕 來源: 技術老小子
相關推薦

2009-08-12 17:19:51

ASP.NET圖片加水

2022-05-04 18:26:25

PDF水印Python

2023-09-27 12:11:08

Python水印Pillow

2024-11-29 07:45:38

C#離線語音文字

2021-09-02 15:25:54

技術視頻摳圖

2024-12-12 08:50:30

開源多媒體框架

2009-11-24 15:43:17

PHP給圖片加水印

2024-08-01 08:37:46

vue圖片性能

2025-02-08 10:58:07

2024-03-19 08:35:30

Vue3添加水印維護版權標識

2023-12-26 08:00:00

微前端React

2025-02-24 00:10:00

2009-12-07 15:41:51

PHP圖片加水印

2025-04-09 08:00:00

2016-09-06 21:09:35

Phpgd庫圖片水印

2024-11-06 16:22:26

NetMQC#

2022-05-13 09:36:06

Python水印命令

2024-04-28 11:25:02

C#JSON

2009-09-01 16:12:41

C#命名指南

2021-04-22 11:27:24

Python命令水印
點贊
收藏

51CTO技術棧公眾號

欧美特大特白屁股xxxx| 亚洲人成色777777老人头| 欧美电影《睫毛膏》| 欧美高清激情brazzers| 欧美黑人在线观看| 精品视频三区| 国产乱妇无码大片在线观看| 97久久超碰福利国产精品…| 手机毛片在线观看| 91久久精品无嫩草影院 | 亚洲国产精品成人精品| 日韩一级片播放| 欧洲性视频在线播放| 久久久久国产精品人| 亚洲自拍小视频| 无码人妻精品一区二| 欧美91大片| 亚洲天堂免费视频| 台湾佬美性中文| 8av国产精品爽爽ⅴa在线观看| 亚洲婷婷综合久久一本伊一区| 精品乱码一区| 亚洲在线视频播放| 伊人成人网在线看| 在线观看国产成人av片| 黄色激情在线观看| 欧美成人黄色| 日韩欧美国产高清91| 国产欧美综合一区| 蝌蚪视频在线播放| 高清不卡一二三区| 国产欧美日韩中文字幕| 国产a∨精品一区二区三区仙踪林| 狠狠色丁香婷婷综合影院| 日韩女优av电影| 中文字幕一区二区三区四区在线视频| 中文av资源在线| 久久精品亚洲麻豆av一区二区| yellow视频在线观看一区二区| 亚洲精品久久久久久久蜜桃| 伊人久久亚洲影院| 久久在线精品视频| 亚洲天堂岛国片| 亚洲va久久久噜噜噜久久| 日韩三区在线观看| 三年中文在线观看免费大全中国| 成人福利视频| 福利一区视频在线观看| 人人妻人人澡人人爽欧美一区| 精品资源在线看| 成人福利在线看| 91成人免费在线观看| 伊人久久一区二区| 奇米色777欧美一区二区| 51久久精品夜色国产麻豆| 久草视频免费播放| 欧美不卡一区| 精品中文字幕乱| 伊人在线视频观看| 欧美电影免费| 日韩最新av在线| 手机免费观看av| 欧美日韩精品一区二区视频| 亚洲国产日韩一区| 日韩精品国产一区| 日韩视频1区| 日韩精品中文字幕在线不卡尤物| 中文字幕一区二区三区四| 亚洲免费看片| 91精品在线一区二区| 色网站在线视频| 精品视频一区二区三区在线观看| 欧美精品1区2区| 三区视频在线观看| 日韩精品成人在线观看| 91精品国产麻豆国产自产在线| 国产欧美一区二| 欧美综合社区国产| 欧美浪妇xxxx高跟鞋交| 在线观看岛国av| 国产精品亚洲欧美一级在线| 日韩午夜av电影| 无码人妻一区二区三区免费n鬼沢| 秋霞影院一区| 亚洲精品久久视频| 波多野结衣 在线| 日韩av免费大片| xxx一区二区| chinese全程对白| 欧美区亚洲区| 69av成年福利视频| 国产污视频网站| 裸体在线国模精品偷拍| 3d动漫啪啪精品一区二区免费| 亚洲黄色在线免费观看| 99精品国产99久久久久久白柏| 欧美日韩一区二区三区在线观看免 | 中文国产字幕在线观看| 午夜精品福利在线| 国产一区视频免费观看| 亚洲黑人在线| 亚洲福利视频免费观看| 国产人妻大战黑人20p| 99精品视频在线| 国产69精品久久久久9| jizz国产在线| 国产91精品一区二区麻豆亚洲| 裸体丰满少妇做受久久99精品| aⅴ在线视频男人的天堂| 亚洲女性喷水在线观看一区| 国内自拍在线观看| 亚洲伊人伊成久久人综合网| 欧美成人官网二区| 亚洲激情视频小说| 欧美/亚洲一区| 91福利视频在线观看| 97av免费视频| 久久五月婷婷丁香社区| 欧美日韩一区二区三区电影| xx欧美视频| 日韩精品一区二区在线| www久久久久久久| 亚洲人成免费| 成人女保姆的销魂服务| 麻豆影视在线| 一区二区三区欧美| 久久久久久久少妇| 大奶在线精品| 久久精品视频一| 天天射天天干天天| 99久久综合精品| 国产一区二区三区播放| 午夜日韩成人影院| 亚洲国产第一页| 在线观看黄网址| 日韩电影在线观看一区| 精品久久精品久久| 自拍视频在线| 在线欧美日韩精品| 北岛玲一区二区| 国产一区久久| 91超碰在线免费观看| 麻豆91在线| 欧美色视频在线| 日韩中文字幕电影| 尹人成人综合网| 99久久伊人精品影院| 永久免费在线观看视频| 欧美性色19p| 狠狠人妻久久久久久综合蜜桃| 牛夜精品久久久久久久99黑人| 国产欧美韩国高清| 日本在线天堂| 欧美绝品在线观看成人午夜影视| 能直接看的av| 日本91福利区| 日韩亚洲一区在线播放| 免费电影日韩网站| 亚洲国产精品嫩草影院久久| 青青草原国产视频| 国产精品主播直播| www.国产二区| jizz久久精品永久免费| 久久久伊人日本| 天天综合网在线观看| 亚洲成在线观看| 国产 中文 字幕 日韩 在线| 亚洲国产高清一区二区三区| 国产女人水真多18毛片18精品 | 樱花影视一区二区| 中文字幕第10页| 欧美日韩在线大尺度| 国产精品乱码视频| 超碰97免费在线| 精品调教chinesegay| 中文字幕一区在线播放| 久久精品视频免费观看| 国产又大又黄又粗的视频| 欧美日韩精品一区二区视频| 国产精品啪视频| 国产在线观看91| 精品国产99国产精品| 日韩欧美不卡视频| 国产视频不卡一区| 亚洲美女爱爱视频| 黄页网站一区| 鲁丝片一区二区三区| 成人1区2区| 久久综合久久88| 日本精品久久久久| 在线亚洲免费视频| 男女性高潮免费网站| 国产精品自产自拍| 少妇性l交大片| 亚洲a在线视频| 国产日韩欧美综合精品| 欧美男女交配| 久久av.com| 五月婷婷久久久| 欧美午夜片在线观看| 免费一级全黄少妇性色生活片| 99精品久久只有精品| 91插插插插插插插插| 欧美午夜a级限制福利片| 久久久福利视频| 日韩成人免费av| 久久久噜久噜久久综合| xxxxx日韩| 亚洲精品电影网站| 亚洲天堂久久久久| 午夜精品福利一区二区三区av | 91超薄肉色丝袜交足高跟凉鞋| 欧美专区一区二区三区| 免费成人深夜夜行网站视频| 好吊妞视频这里有精品 | 久久久高清一区二区三区| 亚洲欧美aaa| 西西人体一区二区| 日本黄网站色大片免费观看| 亚洲欧洲av| 97人人澡人人爽| 456成人影院在线观看| 午夜精品久久17c| 国产在线观看免费麻豆| 亚洲丝袜在线视频| 污污网站免费在线观看| 欧美日韩成人一区| 69成人免费视频| 亚洲一级不卡视频| 日韩精品一区二区三区在线视频| 91影院在线免费观看| 超碰人人cao| 久久丁香综合五月国产三级网站| 男人的天堂99| 亚洲美女色禁图| 日韩视频 中文字幕| 成人综合专区| 麻豆成人av| 国产精品流白浆在线观看| 91在线视频成人| 欧美日韩视频免费看| 国产精品第一视频| 天堂√中文最新版在线| 欧美日韩成人精品| av色综合久久天堂av色综合在| 国产一区二区三区中文| 欧美黄色小说| 精品五月天久久| 香蕉国产在线视频| 日韩av在线看| 亚洲人在线观看视频| 亚洲第一色中文字幕| www.成人精品| 日韩一级完整毛片| a天堂视频在线| 欧美一级日韩免费不卡| 国产免费的av| 欧美一级理论性理论a| 91在线精品入口| 777精品伊人久久久久大香线蕉| 欧美 亚洲 另类 激情 另类 | 一本大道伊人av久久综合| 欧美综合一区二区| 中文亚洲av片在线观看| 欧美人体做爰大胆视频| 国产一区二区小视频| 777奇米成人网| www.av在线.com| 亚洲成人aaa| 日韩a在线观看| 亚洲午夜性刺激影院| jizz在线免费观看| 精品国产区一区二区三区在线观看| avtt亚洲| 欧美成人一区在线| jizzjizz中国精品麻豆| 午夜精品一区二区三区av| 美女高潮在线观看| 青青草99啪国产免费| 免费污视频在线一区| 国产在线精品一区免费香蕉 | 久久久久久艹| 欧美理论在线播放| 波多野结衣三级在线| 欧美天天在线| 黑人糟蹋人妻hd中文字幕| 天堂资源在线中文精品| 日本 片 成人 在线| 国产精品一区二区在线播放| 扒开伸进免费视频| 久久综合九色综合97婷婷女人 | 中文字幕在线播放一区二区| 白白色 亚洲乱淫| 88久久精品无码一区二区毛片| 国产精品三级视频| 欧美另类视频在线观看| 日本乱人伦一区| 国产成人精品无码高潮| 精品亚洲一区二区三区在线观看| 成人在线播放视频| 欧美国产日韩视频| 色豆豆成人网| 操人视频欧美| 日韩欧美精品| 精品久久一二三| 久久精品国产亚洲aⅴ| 久久久久99人妻一区二区三区| 久久综合久久综合久久综合| 乱h高h女3p含苞待放| 色av一区二区| 欧美一级淫片免费视频魅影视频| 亚洲视频在线免费观看| 青青青国内视频在线观看软件| 日本精品久久久久久久| 久久免费精品| 丝袜美腿玉足3d专区一区| 亚洲精选一区| 特级西西444www| 国产亚洲精品资源在线26u| 青青青在线免费观看| 色就色 综合激情| 欧美一区,二区| 久久躁日日躁aaaaxxxx| 免费观看亚洲| 国产欧美日韩一区二区三区| 999国产精品视频| 色诱视频在线观看| av午夜一区麻豆| 538任你躁在线精品视频网站| 在线一区二区观看| 亚洲欧美自偷自拍| 欧美激情第一页xxx| www.久久草.com| 久久综合九色99| 在线高清一区| 奇米777在线| 中文字幕一区二区三区av | 91超碰这里只有精品国产| 男女视频在线观看免费| 久久久亚洲天堂| 视频欧美一区| a级网站在线观看| 精品一区二区三区久久久| 潮喷失禁大喷水aⅴ无码| 日韩欧美第一页| 亚洲欧美日韩成人在线| 久久久久久久久国产精品| a看欧美黄色女同性恋| 亚洲啊啊啊啊啊| 国产精品一区二区久激情瑜伽| 顶级黑人搡bbw搡bbbb搡| 欧美性色黄大片| 岛国在线视频| 国产精品欧美激情| 欧美日韩国产高清电影| 爱情岛论坛成人| 亚洲国产精品成人综合色在线婷婷| 男人日女人网站| 日韩久久精品电影| 久久精品女人天堂av免费观看| 久久国产一区二区| 久久不射2019中文字幕| 乐播av一区二区三区| 91国偷自产一区二区三区观看| 日韩大胆视频| 国产精品天天狠天天看| 久久精品国产亚洲夜色av网站| 人人干人人干人人| 国产精品传媒视频| 一二三四区在线| 欧美国产视频日韩| 秋霞在线一区| 激情 小说 亚洲 图片: 伦| 亚洲婷婷综合久久一本伊一区| 亚洲成人一级片| 日本精品va在线观看| 欧美电影一区| 91视频在线免费| 欧美午夜免费电影| 少女频道在线观看高清| 欧美在线播放一区| 九九**精品视频免费播放| 欧美亚洲日本在线| 精品人在线二区三区| 伊人色综合一区二区三区影院视频 | 国产精品一区二区免费视频| 色综合久综合久久综合久鬼88 | 亚洲欧美国产另类| 成人视屏在线观看| 国产成年人在线观看| 成av人片一区二区| 91丨九色丨海角社区| 另类美女黄大片| 欧美日韩导航| 一起操在线视频| 婷婷六月综合亚洲| 午夜看片在线免费| 国产精品9999久久久久仙踪林| 国产日韩高清一区二区三区在线| 国产毛片欧美毛片久久久|