我有一台电视机,可以插入 USB 硬盘并播放其中的电影。它支持范围非常广泛,但正如我昨天了解到的(很丑陋),虽然它可以播放 2Gb 以上的文件,但不能读超过 2Gb 标记,因此它会跳转到下一部电影而不播放结尾...
我现在有一大堆超过 2 小时的 1080p 电影想要观看,但我的电视似乎没有可以解决这个问题的固件更新,所以......
有人知道可以将电影文件一分为二的免费程序吗?
我正在寻找可以“重塑标题”并实际将文件分成两部分的东西,而不是将其视为帧流并重新编码的东西(即,只需几秒钟即可运行,而不是几个小时,并能保持图像质量完好无损)。
如果所述程序也可以对字幕文件执行相同的操作,那就太理想了,但如果不这样做,如果我知道电影被剪切的确切位置,我可能可以编写一些代码来为我完成这项任务。
有问题的电影都是“mkv”或“mp4”,字幕文件都是.srt
答案1
SplitMKV 将执行以下操作: Doom9.org 上的 SplitMKV 开发线程
然而,它是一个命令行工具,但使用起来相当简单 - 重要的是它具有您需要的字幕支持。它基于执行视频分割的 MKVMerge,而 SplitMKV 本身负责处理字幕;纠正分割输出的偏移。
答案2
在 LINUX(Ubuntu)中,mkvmerge
GUI 是一个很好的工具,但是...
根据您要播放分割文件的位置(尤其是蓝光、电视),您可能会遇到标头压缩问题。在 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