V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
83f420984
V2EX  ›  分享创造

写了一个基于 electron-vue + ffmpeg 的 GUI

  •  2
     
  •   83f420984 · 2019-06-26 16:36:10 +08:00 · 7764 次点击
    这是一个创建于 2003 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么写这个项目?

    市面上已经有很多的转码软件了,但大多都是收费的,而且大版本会重新进行收费,虽然有免费 ffmpeg 可以用,但它那用命令的操作方式实在是不方便,想来想去就自己整了个

    遇到的问题?

    开发期间最大的问题是不确定 electron + ffmpeg 能不能实现我的想要的功能,在简单的调研后,写了个 demo,发现转码这个情况下是不能开启硬件加速的,导致默认是用 CPU 进行转码,而且转码极慢,经过几天的查资料查文档总算是能开启硬件加速了 🤨

    原理

    目前我是用了两种方法来执行 ffmpeg

    1. 用 node 子进程执行 ffmpeg 二进程文件(基本上只要是 ffmpeg 能支持的命令它都能运行,只不过需要自己实现一些方法,比如进度条展示等等)
    2. 用 fluent-ffmpeg 第三方库来执行(方便简单,但有局限性,比如想实现转 GIF 它就不支持)

    最后

    我知道大家很讨厌 electron,我也很讨厌,但架不住前端除了这个基本上就没得选了,所以还是写了这个项目,请大佬轻喷

    地址:https://github.com/zhen-ke/ffmpegGUI

    35 条回复    2019-06-29 09:23:33 +08:00
    Steps
        1
    Steps  
       2019-06-26 16:46:58 +08:00
    这个很棒,支持关注一下!
    Yien
        2
    Yien  
       2019-06-26 16:48:02 +08:00 via Android
    赞👍感谢分享
    BCy66drFCvk1Ou87
        3
    BCy66drFCvk1Ou87  
       2019-06-26 17:24:41 +08:00
    这个没人会喷吧,因为是个好东西
    y33772516
        4
    y33772516  
       2019-06-26 17:32:31 +08:00
    老铁 666
    LeonKennedy
        5
    LeonKennedy  
       2019-06-26 17:41:57 +08:00
    怎么实现硬件转码可以开个教程。
    格式工厂就是对 ffmpeg 封装了个 gui
    83f420984
        6
    83f420984  
    OP
       2019-06-26 17:42:44 +08:00
    @LeonKennedy 好的,我到时候会把方法写到项目的 README 里
    csynb
        7
    csynb  
       2019-06-26 18:27:08 +08:00 via iPhone
    支持一下, 不过为什么说前端只有这个呢
    xiaolanger
        8
    xiaolanger  
       2019-06-26 18:54:44 +08:00
    貌似 mp4 转 mp4 还不行?
    Joan
        9
    Joan  
       2019-06-26 18:55:38 +08:00
    6666,好东西 支持一下
    83f420984
        10
    83f420984  
    OP
       2019-06-26 18:58:37 +08:00 via iPhone
    @xiaolanger 还没这么试过,谢谢提醒
    akira
        11
    akira  
       2019-06-26 19:10:23 +08:00
    我的 geforce 960,怎么试都用不了硬件转码
    83f420984
        12
    83f420984  
    OP
       2019-06-26 19:19:14 +08:00
    @akira 老哥已经试过了么,默认我是用的 CPU 的核显来转码的,win 和 mac 都是没有问题的
    manhere
        13
    manhere  
       2019-06-26 19:29:14 +08:00 via Android
    加入文件夹监控,自动队列转码,支持数据库和 webhook 才是老司机喜欢的转码软件,相信我。
    holystrike
        14
    holystrike  
       2019-06-26 19:33:18 +08:00 via Android
    问个功能问题 能否批量转码并保留原始目录路径?
    83f420984
        15
    83f420984  
    OP
       2019-06-26 19:36:44 +08:00
    @holystrike 保持原始目录路径是可以的,后续我会把这个项目加进去,批量转我没试过,估计是可以的,但性能上可能会有问题
    83f420984
        16
    83f420984  
    OP
       2019-06-26 19:37:01 +08:00
    @manhere 哈哈,谢谢老哥指点
    omph
        17
    omph  
       2019-06-27 06:43:59 +08:00   ❤️ 1
    electron 资源占用是越来越大了,但还有的选啊
    Revery is kind of like super-fast, native Electron - with bundled React-like/Redux-like libraries and a fast build system - all ready to go!
    https://github.com/revery-ui/revery
    jazzychai
        18
    jazzychai  
       2019-06-27 09:06:03 +08:00
    star
    Spoter
        19
    Spoter  
       2019-06-27 09:26:32 +08:00
    提个需求,能下载 M3u8 的链接,付费都行
    justin2018
        20
    justin2018  
       2019-06-27 09:48:50 +08:00
    虽然喜欢原生的 不喜欢 electron

    但是还得给大佬点赞 666 + 10086~
    RyougiShiki
        21
    RyougiShiki  
       2019-06-27 10:39:42 +08:00
    挺好的,之前有相似需求,要么付费的要么命令行,折腾一番后学会了 adobe pr 基础和 me。。就想有没有人开发像 aria2 的 GUI。
    83f420984
        22
    83f420984  
    OP
       2019-06-27 10:50:44 +08:00
    @Spoter 好的,这个需求我会考虑加入的 😀
    83f420984
        23
    83f420984  
    OP
       2019-06-27 10:51:50 +08:00
    @RyougiShiki 命令行支持其实已经支持了,但只是没做有界面而已🤪
    jinzhe
        24
    jinzhe  
       2019-06-27 11:08:44 +08:00
    Handbrake 很好用啊
    83f420984
        25
    83f420984  
    OP
       2019-06-27 11:22:54 +08:00
    @jinzhe 老哥不说我都不知道有这个东西,不过没事,也不冲突
    missnote
        26
    missnote  
       2019-06-27 13:45:19 +08:00
    给大佬点赞,学习了——
    LokiSharp
        27
    LokiSharp  
       2019-06-27 14:36:01 +08:00
    小工具就别用 electron 了,太大了,动不动就上百兆极限压缩也要三十兆。然而核心源码其实就几百 k
    83f420984
        28
    83f420984  
    OP
       2019-06-27 14:58:48 +08:00
    @LokiSharp 赞同,但就前端来说想跨平台确实没有多少好的选择,这只是个折中的办法
    83f420984
        29
    83f420984  
    OP
       2019-06-27 17:53:16 +08:00
    @LeonKennedy 如何开启硬件加速已经更新到 README 了,不对的地方欢迎指正
    OldDriverKing
        30
    OldDriverKing  
       2019-06-28 09:17:36 +08:00
    WPF + .Net Core 有兴趣吗?
    sine2
        31
    sine2  
       2019-06-28 11:28:48 +08:00
    @Spoter 我这里有个安卓版的手机 app,可以在网页上检测下载 m3u8 视频,并自动转换成 mp4 格式,然后自动保存到手机相册里面。https://www.lijiangsync.com/appM3u8Inspector/app-release.apk
    liudanning
        32
    liudanning  
       2019-06-28 14:08:11 +08:00
    @Spoter youtube-dl 就可以了
    silencegg
        33
    silencegg  
       2019-06-28 20:07:33 +08:00
    666
    Spoter
        34
    Spoter  
       2019-06-29 09:23:19 +08:00
    @sine2 谢谢了,不过一没 Android 手机,二的话想在 Win 上面下载,方便多端共享
    Spoter
        35
    Spoter  
       2019-06-29 09:23:33 +08:00
    @liudanning 非程序员,有点使用门槛。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3145 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:58 · PVG 20:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.