如何分割大型视频文件?

如何分割大型视频文件?

我有一台电视机,可以插入 USB 硬盘并播放其中的电影。它支持范围非常广泛,但正如我昨天了解到的(很丑陋),虽然它可以播放 2Gb 以上的文件,但不能超过 2Gb 标记,因此它会跳转到下一部电影而不播放结尾...

我现在有一大堆超过 2 小时的 1080p 电影想要观看,但我的电视似乎没有可以解决这个问题的固件更新,所以......

有人知道可以将电影文件一分为二的免费程序吗?

我正在寻找可以“重塑标题”并实际将文件分成两部分的东西,而不是将其视为帧流并重新编码的东西(即,只需几秒钟即可运行,而不是几个小时,并能保持图像质量完好无损)。

如果所述程序也可以对字幕文件执行相同的操作,那就太理想了,但如果不这样做,如果我知道电影被剪切的确切位置,我可能可以编写一些代码来为我完成这项任务。

有问题的电影都是“mkv”或“mp4”,字幕文件都是.srt

答案1

SplitMKV 将执行以下操作: Doom9.org 上的 SplitMKV 开发线程

然而,它是一个命令行工具,但使用起来相当简单 - 重要的是它具有您需要的字幕支持。它基于执行视频分割的 MKVMerge,而 SplitMKV 本身负责处理字幕;纠正分割输出的偏移。

答案2

在 LINUX(Ubuntu)中,mkvmergeGUI 是一个很好的工具,但是...

根据您要播放分割文件的位置(尤其是蓝光、电视),您可能会遇到标头压缩问题。在 GUI(旧版本)或命令行中删除压缩:

mkvmerge --split 1G --compression 0:none --compression 1:none --clusters-in-meta-seek -o "output.mkv" "input.mkv"

此命令将把input.mkv文件分割成 1GB 的段input-001.mkv,,input-002.mkv等等。

一般来说,如果文件可以在您的计算机上播放,但不能在电视或光盘播放器(蓝光、DVD)上播放,则问题通常是头压缩。

答案3

另一个很酷的解决方案是使用 bash 将多个 mkv 文件拆分成多个拆分的 mkv

你从

nightmare1.mkv
nightmare2.mkv
..

你会得到

nightmare1-001.mkv
nightmare1-002.mkv
..

nightmare2-001.mkv
nightmare2-002.mkv
..

代码

for file in ./source/*mkv; \
do \
    echo mkvmerge --split 1G --compression 0:none --compression 1:none \
    --clusters-in-meta-seek -o "./split/$(basename "$file")" "$file"; \
done

上面的例子中./source/是原始文件存储目录的相对路径。 分别./split/是目标路径,必须预先创建。

对于每次迭代,变量的值$file将如下所示./source/nightmare-i.mkv。命令替换$(basename "$file")将仅返回文件名而不返回路径,nightmare-i.mkv因此输出选项的值将如下所示./split/nightmare-i.mkv

相关内容