当前位置:文档之家› ASP下调用ffmpeg实现视频水印

ASP下调用ffmpeg实现视频水印

ASP下调用ffmpeg实现视频水印
ASP下调用ffmpeg实现视频水印

视频加水印这块,我走了不少弯路,主要是相关资料太混乱,有人说ffmpeg+avisynth可以,但我不想装avisynth,最后看了老外一篇文章终于OK了,我在这提醒一下:vhook这个参数早就不用了,新版的不是-vfilters,而是-vf,我这用的ffmpeg版本是FFmpeg version: 2013-03-22

git-e0e8c20,它的水印参数是:

Top left corner

ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]" outputvideo.flv

Top right corner

ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" outputvideo.flv

Bottom left corner

ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" outputvideo.flv

Bottom right corner

ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" outputvideo.flv

https://www.doczj.com/doc/9b12488352.html,下使用:

[csharp]

//添加水印,fileName视频地址,imgFile水印图片地址,outputFile输出地址

public int WaterMark(string fileName, string imgFile, string outputFile)

{

//取得ffmpeg.exe的路径,路径配置在Web.Config中,

如:

string ffmpeg = Server.MapPath(PublicMethod.ffmpegbin);

if ((!System.IO.File.Exists(ffmpeg)) ||

(!System.IO.File.Exists(fileName)))

{

return 0;

}

//建立ffmpeg进程

System.Diagnostics.ProcessStartInfo WaterMarkstartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);

//后台运行

WaterMarkstartInfo.WindowStyle =

System.Diagnostics.ProcessWindowStyle.Hidden;

//运行参数

string config=" -i " + fileName + " -vf \"movie=" + imgFile + " [watermark]; [in][watermark] overlay=0:0 [out]\" " + outputFile; WaterMarkstartInfo.Arguments = config;

try

{

//开始加水印

System.Diagnostics.Process.Start(WaterMarkstartInfo);

}

catch

{

return 0;

}

return 1;

}

//添加水印,fileName视频地址,imgFile水印图片地

址,outputFile输出地址

public int WaterMark(string fileName, string imgFile, string outputFile)

{

//取得ffmpeg.exe的路径,路径配置在Web.Config中,

如:

string ffmpeg = Server.MapPath(PublicMethod.ffmpegbin); if ((!System.IO.File.Exists(ffmpeg)) ||

(!System.IO.File.Exists(fileName)))

{

return 0;

}

//建立ffmpeg进程

System.Diagnostics.ProcessStartInfo WaterMarkstartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);

//后台运行

WaterMarkstartInfo.WindowStyle =

System.Diagnostics.ProcessWindowStyle.Hidden;

//运行参数

string config=" -i " + fileName + " -vf \"movie=" + imgFile + " [watermark]; [in][watermark] overlay=0:0 [out]\" " + outputFile;

WaterMarkstartInfo.Arguments = config;

try

{

//开始加水印

System.Diagnostics.Process.Start(WaterMarkstartInfo); }

catch

{

return 0;

}

return 1;

}

是不是很简单呢,可是程序调试运行起来的时候,你会发现ffmpeg根本找不着你水印的图片:

经过我个人反复调试问题锁定在:-vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]"中的movie=后面只接受相对路径,如/data/watermarklogo.png之类的,一旦使用

C:/data/watermarklogo.png它就找不着北了,如果是窗体程序的话,把watermarklogo.png搁到程序所在的目录下使用相对路径就OK了,但是如果是Web怎么办呢?相信大家可能就想到了,设置WorkingDirectory,没错,假如图片在C:/data/watermarklogo.png,那么咱们就这样写:

[csharp]

WaterMarkstartInfo.WorkingDirectory = "C:\\data\\";

WaterMarkstartInfo.WorkingDirectory = "C:\\data\\";

试试,是不是可以了呢?折腾了老多天的问题,终于解决了。

可是回头我们就会发现加完水印后,视频质量严重下降,这是怎回事,其实上面的命令只是简单的水印命令,如果想保证视频质量的话,命令应该如下:

ffmpeg.exe -y -i input.avi -acodec copy -b 300k -vf

"movie=watermarklogo.png [watermark]; [in][watermark] overlay=0:0 [out]" output.avi

-y 表示有同名的output.flv存在时不提示,直接覆盖

-i input.avi 表示要进行水印添加处理的视频

-acodec copy 表示保持音频不变

-b 300k 表示处理视频的比特率,用-vcodec copy时报错,可以使用其他工具获取到原始视频比特率后加到这里,保持比特率基本不变,不然默认为200k,视频有损。

-vf "..." 中间便是水印处理参数,主要是overlay,第一个参数表示水印距离视频左边的距离,第二个参数表示水印距离视频上边的距离

output.avi 处理后的视频

水印就加到这吧!有问题多多交流!

教你用视频转换器去出视频水印的方法

在看视频的时候经常会有自己喜欢的综艺节目、电影或者小视频,这时我们通常把想看的视频保存下来,但是下载的视频一般都会带有软件的水印会使人看的不舒服,因此我们发现保存后的视频带有水印时会选择把水印去掉,但是有很多人并不知道怎么去水印,接下来就教大家如何使用迅捷视频转换器去水印。 1、首先打开软件选择“视频去水印”功能,记得首先要选择‘视频去水印’功能,因为软件默认的是“视频转换功能”。第一步很重要,但是第一步往往容易被忽略。 2、选择好“视频去水印”功能后把需要去水印的视频添加到软件中。添加的时候可以点击左上角的“添加文件”或“添加文件夹”按钮进行添加,同时软件还支持直接拖拽的方式将视频拖拽至软件。

3、将文件添加到软件后可以将“输出格式”先设置好。设置‘输出格式’的时候可以设置视频格式和视频分辨率,因为mp4占用内存较小所以我们选择了软件默认的‘mp4格式’,然后将分辨率设置为和原文件相同分辨率的‘同原文件’格式。 4、将“输出格式”设置成‘mp4同原文件’格式后需要设置的是下方的“输出路径”,‘输出路径’指的是你要将去水印后的视频存储到电脑的位置。而我们这里把‘输出路径’设置到了(D:\shuiyin),在设置‘输出路径’的时候尽量设置方便查找文件的位置,以便查找文件。

5、设置好“输出路径”后点击“编辑去水印”按钮,点击后会跳出一个‘编辑去水印’的框出来,接下来点击“添加去水印区域”,此时会有一个选择框出现在视频中,我们需要调整框的大小和位置,直到覆盖水印位置。把带水印的位置覆盖后点击“确定”就把去水印的位置调整好了。 6、调整好去水印的位置后只需点击右上角的“去水印”或者右下角的“全部去水印”按钮就可以去水印了。去水印的时候会出现一个进度条,当进度条显示100%时就表示已经把视频的水印去除了。

视频去水印工具完美解决方案

在看电影或者视频的时候时不时的出现一个碍眼的台标/Logo等水印,观看时总感觉有点碍眼,尤其是想下载收藏的那种视频,怎么去视频水印?根据具体情况具体分析,为狸友们提供易懂的视频去水印/优化视频的解决方案。 第一种:剪切方法: 如果只是在视频黑边部分有台标的,可以使用比较硬性的办法哦,就是对视频的画面进行切割,用狸窝全能转换器。【百度搜索:狸窝全能视频转换器】 “添加视频”-“视频编辑”-“剪切”-“选择输出格式”-“导出”。

“视频编辑” 第二种:色块遮罩方法 下载需要用到的软件,所谓色块遮罩,就是直接用一张纯色背景,放在覆叠轨上,调节到合适大小,遮住自己不想要的地方。双击运行软件,选择“编辑”-“导入视频”-鼠标将视频拖曳至视频轨。

选择“图形”,将某一样式拖曳至覆叠轨,如下图所示。调整长度(播放时间),还有在左上方的预览窗口中,可以调节覆叠轨图片的大小和位置。

选中图形,打开选项面板,还可以可设置“遮罩和色度键”哦。 然后勾选应用覆叠选项,可以选择自己喜欢的形状,还有透明度也可以设置哦。

好啦,编辑好后,就可以渲染导出视频文件了。选择“分享”-“创建视频文件”,选择一个需要的格式和保存路径,保存即可渲染导出啦。 正在渲染中,渲染到100%时才完成哦,要淡定啦,心急可是吃不了热豆腐的哦!渲染完成后在指定路径上就可以找到输出的视频文件了。小伙伴们猜猜小编用到的视频素材是一部什么电视剧的,没错,它的名字叫做《原来是美男》, 这部电视剧当初还是很火的哦,小编尤其喜欢里面的男二号,嘎嘎~~~别笑啦,男一号也很帅啦!大家不妨去看看哦,女主角朴信惠也很可爱哦!

视频怎么去水印

视频对于大多数小伙伴来说并不是一个陌生的东西,有时我们也会转发或下载一些视频,但是因为视频中带有别人的水印标志。当很多小伙伴看到带有水印的视频时,总想要将水印去掉。可以又苦于不会操作,今天小编教大家使用视频剪辑工具怎么去除视频中的水印,并且不止一个方法呀! 借助工具:迅捷视频剪辑软件 方法一:给视频加上马赛克 现在很多小伙伴在图片或视频中都会用到马赛克,这是一种图像处理手段。这种手段可以将影像特定区域的色阶细节劣化且造成色块打乱的效果,通过这种手段的处理,将那些特定区域变成一个个模糊的小格子。这样就无法辨认出对应的图像内容了。 在进入视频剪辑软件后,先将带有水印的视频素材上传至本地,同时还需要将该视频添加至轨道,小编认为比较方便的操作就是直接选中视频,将其拖拽带轨道内。当然选择“添加至轨道”的功能也是可以的。接下来就需要我们在功能栏区域找到马赛克功能了。 点击马赛克功能之后,选择“添加”命令,会出现马赛克编辑框,可根据我们的需求调整马赛克区域大小。左侧窗口是对视频添加马赛克,右侧窗口是预

览,可以看出添加马赛克后的效果。如果在不同的时段,水印位置不同,可以添加多个马赛克编辑框。对水印加上马赛克之后,点击确定就可以了。 方法二:剪裁水印区域 如果视频中水印位置恰当的话,可以采用剪裁的方法。在该视频剪辑软件中,我们也是先需要将视频素材上传一下,具体操作如上。而剪裁功能和马赛克在同一功能栏中,我们点击该功能,就会跳转出剪裁的窗口。如果需要保持高宽比的话,就将其勾选。然后将要保留不带水印的视频区域了,编辑好选择确定就搞定了。 无论是使用哪种方法都是需要将剪辑后的视频保存一下的,点击页面中的导出按钮,在弹出的导出窗口中将一些视频设置完善一下,如视频格式,输出目录等。确认无误就可以点击窗口中的“导出”按钮就完成啦。

视频去水印用什么软件

在我们休闲的时光中,较多的时间就是刷刷抖音,看看剧。遇到喜欢的片段就会将其下载一下。但是我们下载的很多视频是带有水印的,这些水印会影响整体视频效果,很多小伙伴说想要学习一下视频去水印的方法?今天小编就用视频剪辑软件交给大家两种去水印的方法。 使用工具:迅捷视频剪辑软件 我们知道视频剪辑软件的功能就是剪辑需要的视频,比如常见的为视频添加字幕,设置背景音乐,为视频加上滤镜等。在该软件中,这些功能都是具备的。并且去水印的功能还不知这一种,下面我们就看看在视频剪辑软件中有哪些去水印的方法。 视频去水印的方法有哪些? 在给视频去除水印之前,我们需要将带有水印的视频文件上传至软件,点击素材中的“导入”或是文件中的“打开项目”都是可以的,这样就将需要的视频上传至软件内了。之后选中视频将其添加至轨道内就行了。 常用方法:马赛克 视频剪辑软件中是有马赛克这一功能的,无论是使用剪辑类软件还是其他类软件,给水印加上马赛克是比较常用的方法了。在视频添加至轨道后,我们从编

辑框中选中“马赛克”功能,我们移动轨道中的进度条,移到有水印的地方,点击“添加”,会在编辑框中出现添加马赛克的编辑框,将该框移至到水印位置,可进行拉伸或缩放,软件右侧的窗口是预览画面,我们可以看到对应的水印就不见了。 好用的方法:裁剪 裁剪功能去除水印就比较简单了,同样是在上传好视频文件后,点击编辑框中的“裁剪”功能,在左侧的裁剪窗口将带有水印的地方裁剪掉,右侧就是有裁剪之后的视频效果了。 上述的两个方法在去除水印之后都不要忘记点击水印,然后将其导出哦! 现在大家知道用视频剪辑软件怎么给视频去水印了吧!还不会的小伙伴可以学习试试,希望小编的分享可以帮助到大家。

相关主题
相关文档 最新文档