程序8 VC++编写视频去水印工具

视频去水印工具我们采用ffmpeg开源库来做。直接调用传参数即可实现去水印。

下载地址: https://ffmpeg.zeranoe.com/builds/

输出:ffmpeg -i 1.mp4 -vf delogo=x=1007:y=183:w=118:h=76 2.mp4

测试:ffplay -i 2.mp4 -vf delogo=x=1007:y=183:w=118:h=76

X Y 表示LOGO的坐标

W H 表示LOGO的宽和高

Band 表示矩形模糊厚度 默认为4

Show 设置为1 ,W H的水印会有一个绿色线条框 默认为0

剪切
ffmpeg -ss 00:00:00 -t 00:02:00 -i 2.mp4 -vcodec copy -acodec copy 3.mp4

 

 

视频观看地址:https://www.bilibili.com/video/av31482778/

转载于:https://www.cnblogs.com/simont/p/9622419.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的VC++绘图程序示例,可以绘制直线和圆形: 首先,创建一个MFC应用程序,选择“单文档”和“视图”选项,并在“视图”选项中选择“绘图视图”: 在“绘图视图.h”中添加以下代码: ``` class CDrawView : public CView { protected: // create from serialization only CDrawView(); DECLARE_DYNCREATE(CDrawView) // Attributes public: CDrawDoc* GetDocument(); // Operations public: // Overrides public: virtual void OnDraw(CDC* pDC); // overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); // Implementation public: virtual ~CDrawView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: DECLARE_MESSAGE_MAP() }; ``` 在“绘图视图.cpp”中添加以下代码: ``` #include "stdafx.h" #include "Draw.h" #include "DrawDoc.h" #include "DrawView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CDrawView IMPLEMENT_DYNCREATE(CDrawView, CView) BEGIN_MESSAGE_MAP(CDrawView, CView) END_MESSAGE_MAP() // CDrawView construction/destruction CDrawView::CDrawView() { // TODO: add construction code here } CDrawView::~CDrawView() { } BOOL CDrawView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } // CDrawView drawing void CDrawView::OnDraw(CDC* pDC) { CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: add draw code for native data here pDC->Ellipse(100, 100, 200, 200); // draw a circle pDC->MoveTo(300, 100); // move to (300, 100) pDC->LineTo(400, 200); // draw a line to (400, 200) } // CDrawView printing BOOL CDrawView::OnPreparePrinting(CPrintInfo* pInfo) { // default preparation return DoPreparePrinting(pInfo); } void CDrawView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CDrawView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } // CDrawView diagnostics #ifdef _DEBUG void CDrawView::AssertValid() const { CView::AssertValid(); } void CDrawView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CDrawDoc* CDrawView::GetDocument() const // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDrawDoc))); return (CDrawDoc*)m_pDocument; } #endif //_DEBUG ``` 编译并运行程序,就可以看到一个包含一个圆形和一条直线的窗口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值