V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Geekerstar
V2EX  ›  FFmpeg

FFmpeg 可以将视频文件按照固定大小分割么?

  •  
  •   Geekerstar · 204 天前 · 1518 次点击
    这是一个创建于 204 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如一个 5G 的视频文件,分割为 5 个 1G 的文件,跪求大佬解答

    13 条回复    2021-06-19 16:11:42 +08:00
    yougoUp
        1
    yougoUp   204 天前
    FFmpeg 使用命令我没尝试过,我是用 C++的 API 做个类似功能。
    累计每一帧大小,达到临界值( 1G )时,先不做处理,继续处理,当处理到临界值的下一 I 帧时合并视频,并且从当前 I 帧开始处理下一个视频。
    AoEiuV020
        2
    AoEiuV020   204 天前
    直接按时长估算?误差很小的,
    efaun
        3
    efaun   204 天前
    FFmpeg -h

    FFmpeg -fs
    CallMeReznov
        4
    CallMeReznov   204 天前
    -fs
    also24
        5
    also24   204 天前
    @efaun
    你确定 -fs 符合楼主的需求嘛?

    https://ffmpeg.org/ffmpeg.html#Video-Options
    -fs limit_size (output)
    Set the file size limit, expressed in bytes. No further chunk of bytes is written after the limit is exceeded. The size of the output file is slightly more than the requested file size.
    cheng6563
        6
    cheng6563   204 天前
    按时长和码率估算就行了
    fgodt
        7
    fgodt   204 天前
    最简单的是按时常来估算
    GalaDOS
        8
    GalaDOS   204 天前
    恒定码率的视频,2L 的方法一般就可以了
    非恒定码率的视频(比如用-crf 编的),或者希望精度高一点(再高也会受关键帧限制),可以自己修改 segment.c,加个 segment_size 选项
    imn1
        9
    imn1   204 天前
    分割后能播和不能播是两码事,后者跟 ffmpeg 无关
    RedisMasterNode
        10
    RedisMasterNode   204 天前
    @AoEiuV020 这个实际用起来误差还挺大的...取决于不同场景(比如运动和静止、噪点多少、画面风格)的分布,而且也得看你说的误差是接受多少范围内,比如说 10MiB 范围内算误差的话,那应该超出会挺多,如果说 100M 的误差,视频原本就小的话可能还是可以满足,如果是蓝光(例如 20-30G/120min )的话,基本没希望
    no1xsyzy
        11
    no1xsyzy   204 天前
    精确等分是不可能的。

    1.
    时间 -> 尺寸 的函数是一个局部线性函数
    局部线性函数可以迭代求反,参考火星坐标系解密算法,或者更快速地,使用牛顿迭代法。

    2.
    -fs 再设小一点,拿到前一个视频结束的时间点补下一个(但如果你是等分的话,可能 -fs 反而要设大一点,避免最后尾部多出来几 MiB 的尾巴)。
    视频网站都是定时长的,不是有过 5 分钟诅咒之类的事儿嘛
    wdssmq
        12
    wdssmq   203 天前
    MKVToolNix 可以按时间,,忘记能不能按大小了。。
    balloonreddit
        13
    balloonreddit   165 天前
    能不能按场景分割
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2506 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:53 · PVG 22:53 · LAX 06:53 · JFK 09:53
    ♥ Do have faith in what you're doing.