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

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

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

    为什么写这个项目?

    市面上已经有很多的转码软件了,但大多都是收费的,而且大版本会重新进行收费,虽然有免费 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 里
    cynb
        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
    &nbs;   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
    uniuni
        32
    uniuni  
       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     Solana     928 人在线   最高记录 667       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 22:33 PVG 06:33 LAX 14:33 JFK 17:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86