大家有什么好的视频压缩库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
honglei92
V2EX    Android

大家有什么好的视频压缩库

  •  
  •   honglei92 2020-06-15 09:54:32 +08:00 14765 次点击
    这是一个创建于 1951 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位壮士,求推荐一波

    38 条回复 &nbs;  2020-07-09 21:59:31 +08:00
    lancelock
        1
    lancelock  
       2020-06-15 10:06:15 +08:00
    ffmpeg
    bitdepth
        2
    bitdepth  
       2020-06-15 10:10:37 +08:00 via iPad
    x264, x265
    ffmpeg 只是一 wrapper 附痛 buffer mechanism
    需要 hardware acceleration 洽 Gstreamer
    diliburong
        3
    diliburong  
       2020-06-15 10:26:00 +08:00
    ffmpeg
    honglei92
        4
    honglei92  
    OP
       2020-06-15 10:31:55 +08:00
    @lancelock 轻量一点的有吗 即插即用那种
    wangsd
        5
    wangsd  
       2020-06-15 10:32:20 +08:00
    ffmpeg
    wangsd
        6
    wangsd  
       2020-06-15 10:32:57 +08:00
    想用带 GUI 界面的就 HandBrake
    shawndev
        7
    shawndev  
       2020-06-15 11:17:41 +08:00
    ffmpeg
    augustheart
        8
    augustheart  
       2020-06-15 11:2:35 +08:00 via Android   1
    我是来看有什么非 ffmpeg 方案的。
    dimlau
        9
    dimlau  
       2020-06-15 11:42:03 +08:00
    上传到微信再下载。

    当然我只是来搞笑的,毕竟微信只支持 5 分钟以内的视频。
    honglei92
        10
    honglei92  
    OP
       2020-06-15 11:46:01 +08:00
    @dimlau 那微信的压缩技术是什么
    rocbomb
        11
    rocbomb  
       2020-06-15 12:12:33 +08:00
    最近用 ffmpeg 非常多
    真的非常好用,转码,加水印,拼接
    otakustay
        12
    otakustay  
       2020-06-15 13:37:38 +08:00
    @honglei92 基本可以肯定微信也是 ffmpeg
    coderluan
        13
    coderluan  
       2020-06-15 15:28:37 +08:00
    命令行就 ffmpeg 一个, 当然你单独下个 x265 也行, 反正一套代码.

    带 gui 的话, 可以考虑 HandBrake 和 AnyVideoConverter, 各有优劣.
    zhangsimon
        14
    zhangsimon  
       2020-06-15 15:29:52 +08:00
    ffmpeg 这么强大,为啥没有人开发个 GUI 界面版的啊
    systemcall
        15
    systemcall  
       2020-06-15 15:43:39 +08:00 via Android
    @zhangsimon 太多了,开源软件都是拿来骗经费骗补贴的好东西
    augustheart
        17
    augustheart  
       2020-06-15 16:12:58 +08:00 via Android
    @zhangsimon 如果从主贴需求出发的话,库和 gui 本来就不是能并列存在的东西。
    如果是界面版 ffmpeg,看看 ffmpeg 的文档,这该是什么样的神仙界面才能把它的命令都实现啊。如果只是需要一个应用软件那已经有一大把了。
    zhangsimon
        18
    zhangsimon  
       2020-06-15 16:26:15 +08:00
    @augustheart 这该是什么样的神仙界面才能把它的命令都实现啊。 如果只是需要一个应用软件那已经有一大把了。
    你是说有一大把实现部分功能的软件吧?

    我倒是确实用过一些视频处理软件:但发现功能都不理想。
    比如我想要把一段很长的视频里的某一段加上水印
    大部分软件里就需要把整个视频转码,非常耗时

    就没有软件能把水印转码处理下,完然后和其他片段做无转码合并吗?

    (用过一些无转码的视频拼接软件,但需要视频片段参数完全一致,
    但我找的软件很难把转码片段的输出参数和原视频参数完全一致…)
    otakustay
        19
    otakustay  
       2020-06-15 16:30:33 +08:00
    @zhangsimon 因为视频的压缩是前后帧相关的,所以要效果优秀的话不大可能中间转一段再拼一拼就能搞定
    zhangsimon
        20
    zhangsimon  
       2020-06-15 16:34:01 +08:00
    @otakustay 对效果要求没那么高!! 想要提高效率 !!
    nightwitch
        21
    nightwitch  
       2020-06-15 16:44:47 +08:00
    ffmpeg 那个命令行那么多参数,GUI 要做多少个复选框和按钮。ffmepg 一点也不重,Linux 很多发行版默认带,Windows 下一个静态链接的 ffmepg, 只有几个可执行文件,直接运行就完事。
    nightwitch
        22
    nightwitch  
       2020-06-15 16:45:38 +08:00
    @nightwitch 忽略我的回答吧,我没看到安卓的标签。
    natforum
        23
    natforum  
       2020-06-15 16:46:47 +08:00
    上传到油管,各种分辨率都有给你压缩好了
    augustheart
        24
    div class="sep3"> augustheart  
       2020-06-15 16:50:31 +08:00 via Android
    @nightwitch 自信点,即使是对安卓来说 ffmpeg 也一点都不重
    chihiro2014
        25
    chihiro2014  
       2020-06-15 16:51:41 +08:00
    @wangsd GUI (小丸不香么)
    augustheart
        26
    augustheart  
       2020-06-15 16:54:30 +08:00 via Android
    @zhangsimon 是的,我手机打字,经常就会漏掉点东西 /意思。事实上,基本上不会有第二个东西能做到 ffmpeg 这么齐全的格式和功能支持了。使用了 ffmpeg 的 mencoder 除外
    zhangsimon
        27
    zhangsimon  
       2020-06-15 17:02:11 +08:00
    @nightwitch 可以复选框和 input 结合!-,-
    甚至可以保存自己常用的选项-。-
    --因为不是 coder
    用过两次 ffmpeg 的命令行
    每次都要回复复习下怎么定位文件…
    wangsd
        28
    wangsd  
       2020-06-15 17:29:32 +08:00
    @zhangsimon FFQueue
    msg7086
        29
    msg7086  
       2020-06-15 20:27:52 +08:00   2
    @zhangsimon #18
    世界上绝大多数的类似功能的产品都是 ffmpeg 套个壳。(少部分是独立编解码器,但是功能肯定少得多。)

    至于无转码合并,是可以的,但是要求非常高,要求关键的编码参数必须一致,否则播放的时候会让解码器崩溃。
    举个例子,如果你压的是 H.264 ,参考帧开的是 4,而原片开的是 6,那么合并以后如果 SPS/PPS 里说这片只参考了 4 帧,解码器按照 4 帧分配了内部存储结构空间,播到参考帧 6 的地方就会因为 buffer overrun 或者 missing frame 而炸掉。

    H.264 的关键参数少说十几个,H.265 的关键参数更多,任何一个参数不匹配都会炸掉解码器。

    所以你说,无转码合并难吗?

    再来说点更难的。比如电视广播常用的 Open GOP,每一段 GOP 里的帧都有或多或少参考之前一个 GOP 的内容。也就是说,整个视频流可能从凌晨电视台开机开始,到晚上停机休息为止,这十几个小时的视频都没有办法完美切割或者合并。
    从开机的第一个 IDR 开始,后面的所有内容就像这样:I B P B P I B P B P 。如果是 Close GOP,那么第 1 帧和第 6 帧都是 IDR 帧,从 GOP 边界切开就能完美分割。如果是 Open GOP,那么这两帧都是 i 帧,意味着第 2 帧和第 7 帧都可以跨 GOP 参考,也就是说第 7 帧上的画面可以从第 5 帧甚至第 3 帧取来做参考。如果你把第一个 GOP 切掉,那么第 7 帧直接就成了无法播放的坏帧了。所以像日本的电视台节目,切开的位置头几帧是肯定要坏掉的。
    如果是 H.265 的 4K 节目的话,也有类似的 IDR/CRA/RASL/RADL/TRAIL 帧的区别。
    这些基础知识就够咱们研究好久了……

    这些东西不是你希望他支持他就能做出来的。有些功能,确实不太现实。
    106npo
        30
    106npo  
       2020-06-15 22:46:00 +08:00
    android 上的库 要么 ffmpeg 要么系统的 medioCodec 要么 intel 已经不维护的 media for mobile
    black11black
        31
    black11black  
       2020-06-15 22:48:46 +08:00
    @zhangsimon 因为没有必要,简单的拼接、转码等操作市场上已经有很多竞品了,稍微复杂一些的操作,比如要自己写滤镜之类的,靠 GUI 搞是注定失败的,真用起来还是命令行顺手
    baoyexi
        32
    baoyexi  
       2020-06-16 09:22:29 +08:00
    @msg7086 需要加水印的部分转码作为一个单独的 sequence 就行。解码器发现 sequence header 参数变化可以切新的解码。open gop 也可以判断出来,简单的类似 265 的时候就定义了 bla,然后丢掉 rasl 的包就行。我觉得这个问题在于编码参数不一样会让人看视频有割裂感,不如直接整体编码了了。如果不是直播这种的话,个人感觉视频主观质量占的比重比效率会稍微高一点儿。
    baoyexi
        33
    baoyexi  
       2020-06-16 09:30:59 +08:00
    @bitdepth ffmpeg 的 buffer 确实让人头痛。
    msg7086
        34
    msg7086  
       2020-06-16 10:06:53 +08:00
    @baoyexi 不是所有的解码器都能适应新的 SPS 的。丢掉 RASL 也不是各大解码器都能做好的。
    就连以前最简单的两个分开编码的 h.264 流合在一起出 mp4 都有解码器会炸。
    zhangsimon
        35
    zhangsimon  
       2020-06-16 11:10:45 +08:00
    @baoyexi 喵喵喵,无转码分割、合并的软件我用过好几个,感觉还可以;就是把某一段贴水印转码成原始参数完全一致的视频很难吗
    fansangg
        36
    fansangg  
       2020-06-19 00:00:43 +08:00
    当然是 mediacodec,FFmpeg 慢
    geniusnut
        37
    geniusnut  
       2020-07-09 11:56:00 +08:00
    @bitdepth gstreamer 跟视频压缩没半毛钱关系,它只是个多媒体框架。同样,hardware acceleration 也不是一定要有 gstreamer 才能用。
    bitdepth
        38
    bitdepth  
       2020-07-09 21:59:31 +08:00 via iPad
    @geniusnut 你看我回答什好吧,ffmpeg 也不是啊
    有能力可以硬上 libva, nv sdk
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2482 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:29 PVG 19:29 LAX 04:29 JFK 07:29
    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