V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Apol1oBelvedere
V2EX  ›  问与答

快速将 9.6GB 视频分割为 8Gb+1.6GB 的软件方便推荐吗?

  •  
  •   Apol1oBelvedere · 2020-10-02 00:42:19 +08:00 · 3810 次点击
    这是一个创建于 1521 天前的主题,其中的信息可能已经有所发展或是发生改变。
    测试过如下软件:
    1.ultra video splitter:无法一步分割,且在 Win10 下打不开 H.264 的 MP4 文件(已安装 K-Lite-Codec 编解码器)。
    2.boilsoft video splitter:无法一步分割,在保存为一个文件后,剩余部分文件还要在操作一遍。
    3.格式工厂:有此功能,但是设置按 8000MB 文件大小分割,出来 4GB+4.1GB+1.5GB 三个文件,实际应该出来两个文件才对,不知道为什么出现这样的错误?
    22 条回复    2020-11-29 10:13:07 +08:00
    xinge666
        1
    xinge666  
       2020-10-02 00:55:48 +08:00 via iPhone
    ffmpeg
    undeflife
        2
    undeflife  
       2020-10-02 01:06:48 +08:00
    mkvtoolnix
    undeflife
        3
    undeflife  
       2020-10-02 01:07:46 +08:00
    没注意到你说的第二点 mkvtoolnix 也需要操作两次
    brucmao
        4
    brucmao  
       2020-10-02 01:18:13 +08:00 via iPhone
    Split
    cst4you
        5
    cst4you  
       2020-10-02 04:07:14 +08:00   ❤️ 1
    LosslessCut
    msg7086
        6
    msg7086  
       2020-10-02 07:14:58 +08:00
    mp4box -splits 8192000 video.mp4
    kokutou
        7
    kokutou  
       2020-10-02 07:52:35 +08:00 via Android
    ffmpeg
    mkvtoolnix
    Dukec
        8
    Dukec  
       2020-10-02 08:44:23 +08:00
    FFmpeg
    zengming00
        9
    zengming00  
       2020-10-02 09:04:19 +08:00
    QQ 影音无损剪切想多大就多大
    wttx
        10
    wttx  
       2020-10-02 09:32:59 +08:00 via Android
    手刹?好像界面还行
    Apol1oBelvedere
        11
    Apol1oBelvedere  
    OP
       2020-10-02 10:06:32 +08:00
    @undeflife 是的,ffmpeg -ss 00:00:00 -t 00:00:30 这种也需要操作两次。现在只发现格式工厂可以一步把视频分成两部分保存。只是它的按大小分割视频出了点功能上的差错。
    yongligua
        12
    yongligua  
       2020-10-02 10:53:03 +08:00 via Android
    ffmpeg -fs 可以么…
    Apol1oBelvedere
        13
    Apol1oBelvedere  
    OP
       2020-10-02 10:57:54 +08:00
    @yongligua 可以实现按大小切割“-fs limit_size:set the limit file size in bytes”,但是需要操作两次,是否有办法设置参数后一个命令直接将视频分割为两部分?
    xmumiffy
        14
    xmumiffy  
       2020-10-02 11:05:20 +08:00 via Android
    mp4tools 应该能一次性完成,不过其实没差别,mp4 可以时间跳转,你分两次操作也不会变成读两次完整文件
    Apol1oBelvedere
        15
    Apol1oBelvedere  
    OP
       2020-10-02 11:31:04 +08:00
    @xmumiffy mp4tools 只能按时间分割文件,不能按大小分割文件。但是按时间分割可以一次分个完成,很好。
    暂时性总结:
    1. mp4tools:只能按时间分割,可一次性分割成多段,速度快。(推荐)
    2. boilsoft video splitter:可按时间分割(能提示分段大小,相当于按大小分割),只能一次分割出一个片段,综合功能不错。
    3. 格式工厂:按时间分割,按分段数量分割使用不错,按分段大小分割不准,有问题。
    lxilu
        16
    lxilu  
       2020-10-02 23:23:03 +08:00 via iPhone   ❤️ 1
    格式工厂用了 ffmpeg ;
    为何要一次?性能?测否?
    Apol1oBelvedere
        17
    Apol1oBelvedere  
    OP
       2020-10-03 00:48:05 +08:00
    @lxilu 因为上传到视频网站的大小和时长有限制,故需要对视频文件分割后上传。多个视频文件分割时,一次把单个文件直接分割好最方便快捷。
    ffmpeg 如果能有脚本直接输入分段大小或分段时长,并直接分好一整个文件,那就很方便了。
    目前 mp4tools 里的 MP4splitter 能按时间一步到位分割好,格式工厂的按大小分割有点问题。
    lxilu
        18
    lxilu  
       2020-10-03 20:24:42 +08:00
    就两行命令啊
    Apol1oBelvedere
        19
    Apol1oBelvedere  
    OP
       2020-10-03 21:34:59 +08:00
    @lxilu 如果只分割一个文件倒还好,如果文件很多时,需要不断修改命令的“文件结束时间(每个不一样)”、“源文件名”、“输出文件名”,操作有些繁琐,没有 mp4tools 里的 MP4splitter 便捷了:
    ffmpeg -ss 00:00:00 -t 10:00:00 -i "2020 年超算会议.mp4" -c copy "2020 年超算会议 01.mp4"
    ffmpeg -ss 10:00:00 -t 12:05:36 -i "2020 年超算会议.mp4" -c copy "2020 年超算会议 02.mp4"
    lxilu
        20
    lxilu  
       2020-10-04 11:36:15 +08:00
    糊了一个 PowerShell:
    $file=$args[0];
    .\ffmpeg -i "$file" -c copy -fs 8G "$file-1.mp4";
    $dur=(.\ffmpeg.exe -i "$file-1.mp4" 2>&1|Select-String -SimpleMatch "Duration"|findstr "Duration").Split(',')[0].Split(' ')[3];
    .\ffmpeg -i "$file" -c copy -ss $dur "$file-2.mp4";
    Apol1oBelvedere
        21
    Apol1oBelvedere  
    OP
       2020-10-04 14:39:32 +08:00
    @lxilu 谢谢您的帮助,这个非常有用。使用方法(备注给大家):
    1.设置允许脚本运行策略:
    PS E:> Get-ExecutionPolicy
    PS E:> Set-ExecutionPolicy UnRestricted
    2.运行脚本(如果脚本不在 ffmpeg 安装文件夹路径下运行,则需要将脚本更新为):
    $file=$args[0];
    ffmpeg -i "$file" -c copy -fs 4G "$file-1.mp4";
    $dur=(ffmpeg.exe -i "$file-1.mp4" 2>&1|Select-String -SimpleMatch "Duration"|findstr "Duration").Split(',')[0].Split(' ')[3];
    ffmpeg -i "$file" -c copy -ss $dur "$file-2.mp4";
    JinTianYi456
        22
    JinTianYi456  
       2020-11-29 10:13:07 +08:00
    @msg7086 #6 为何我 macos 运行 mp4box 看起来是要把整个 video.mp4 载入到内存,我哪来那么多内存哦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:48 · PVG 11:48 · LAX 19:48 · JFK 22:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.