c#编写基于ffmpeg的视频裁剪

embedded/2025/1/11 13:14:31/

c#编写基于ffmpeg的视频裁剪

    • 前言
    • 展示
      • ① 压缩裁剪
      • ② 批量处理
      • ③ 自定义命令
      • ④ 配置管理
      • ⑤ 执行日志
    • 功能实现思路
      • ① 帧预览
      • ② 框选区域
      • ③ picturebox,Zoom模式,让图片显示靠边显示
      • ④ 时间区间选择进度条
      • ⑤ 配置和缓存
    • 代码链接
    • 最后

前言

c#编写的一个基于ffmpeg的视频裁剪小工具,比较粗糙,但是适配自己的需求去编写自己习惯的小工具用的比较舒服。比如现在的裁剪工具感觉就苹果自带的拖动预览比较丝滑,裁剪又不重新乱编码,其它的不是这不合理,就是那不好用,用ffmpeg指令是最干净的,就是缺少可视化操作,效率太差。

展示

① 压缩裁剪

请添加图片描述
请添加图片描述

② 批量处理

在这里插入图片描述

③ 自定义命令

在这里插入图片描述

④ 配置管理

在这里插入图片描述

⑤ 执行日志

在这里插入图片描述

功能实现思路

① 帧预览

游标拖动事件触发,图片框展示该时间戳ffmpeg截图

② 框选区域

picturebox用Zoom显示模式,让图片自适应,然后根据像素和帧宽高比例实现鼠标点击的图像框坐标和帧坐标的换算。

③ picturebox,Zoom模式,让图片显示靠边显示

C#中picturebox,Zoom显示模式下,如何让图片显示靠右边显示。
16年的提问没有答案,用ai找到了答案,不得不感慨ai确实开始有些惊喜,一个不存在答案的问题,它会拼凑成有答案的元问题获取答案再组装起来,结果还真实现了。
思路就是重写PictureBox的绘制方法

// 创建绘制图像的矩形,使其靠左对齐
Rectangle imageRect = new Rectangle(0, 0, newWidth, newHeight);

④ 时间区间选择进度条

C# winform 双头滑块 TrackBar2
采用这哥们编写的自定义双头滑块控件,做些修改适配自己的需求。

⑤ 配置和缓存

注册表在win上起到一个简单数据库的功能,配置和缓存用注册表存储。

代码链接

https://github.com/bbqkj/BBQffm

最后

适配自己习惯的才是最好用的,不如尝试自己编写小工具。


http://www.ppmy.cn/embedded/153017.html

相关文章

【AJAX详解】

AJAX详解 AJAX(Asynchronous JavaScript and XML)是一种创建交互式网页应用的网页开发技术。它允许在不重新加载整个页面的情况下,通过后台与服务器交换数据并更新部分网页内容。这提供了更流畅的用户体验,因为用户不需要等待整个…

通过gradle发布aar或jar携带sources-jar到maven nexus

找了很久,没有找到满意的。终于找到一个好的办法。 gradle7.x适用。比以前的写法简洁。 发布传统的jar工程 比如okhttp,fastjson等项目,纯java工程。 直接创建新文件publish.gradle: apply plugin: maven-publishProperties properties …

SQLite 调试与性能优化指南

在前几篇文章中,我们深入了解了 SQLite 的基础和高级功能,以及如何利用其扩展能力。本篇文章将重点讲解 SQLite 的调试工具和性能优化技巧,以帮助您解决常见问题并进一步提升数据库性能。 常见问题及解决方法 SQLite 的轻量级特性使其非常易…

STM32按键中断案例(基于寄存器)

目录 引言 一、案例需求描述 二、硬件电路设计 2.1 LED硬件电路 2.2 按键硬件电路 三、软件设计 3.1 相关寄存器介绍 3.1.1 时钟相关寄存器 3.1.2 配置寄存器 3.1.3 输入数据寄存器 3.1.4 AFIO引脚复用相关 3.1.5 EXTI配置 3.1.6 清除中断标志位 3.2 工程创建 &…

【C++/控制台】2048小游戏

源代码&#xff1a; #include <iostream> #include <windows.h> #include <stdio.h> #include <math.h> #include <stdlib.h> #include <conio.h> #include <time.h>// #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME)…

单向循环链表的约瑟夫环问题

编号为1到n的n个人围成一圈。从编号为1的人开始报数&#xff0c;报到m的人离开。下一个人继续从1开始报数。n-1轮结束以后&#xff0c;只剩下一个人&#xff0c;问最后留下的这个人编号是多少&#xff1f; typedef struct ListNode {int val;struct ListNode* next; }ListNode…

Angular 最新版本和 Vue 对比完整指南

1. Angular 最新版本 当前 Angular 最新稳定版本是 Angular 17(2024年初) 2. 主要区别对比表 特性 | Angular | Vue 框架类型 | 完整框架 | 渐进式框架 默认语言 | TypeScript | JavaScript/TypeScript 数据处理 | RxJS | Promise/async/await 架构特点 | 依赖注入,…

宝塔安装教程,bt怎么安装 linux

Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 37a09b35 Ubuntu/Deepin安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo b…