1
xinge666 2020-10-02 00:55:48 +08:00 via iPhone
ffmpeg
|
2
undeflife 2020-10-02 01:06:48 +08:00
mkvtoolnix
|
3
undeflife 2020-10-02 01:07:46 +08:00
没注意到你说的第二点 mkvtoolnix 也需要操作两次
|
4
brucmao 2020-10-02 01:18:13 +08:00 via iPhone
Split
|
5
cst4you 2020-10-02 04:07:14 +08:00 1
LosslessCut
|
6
msg7086 2020-10-02 07:14:58 +08:00
mp4box -splits 8192000 video.mp4
|
7
kokutou 2020-10-02 07:52:35 +08:00 via Android
ffmpeg
mkvtoolnix |
8
Dukec 2020-10-02 08:44:23 +08:00
FFmpeg
|
9
zengming00 2020-10-02 09:04:19 +08:00
QQ 影音无损剪切想多大就多大
|
10
wttx 2020-10-02 09:32:59 +08:00 via Android
手刹?好像界面还行
|
11
Apol1oBelvedere OP @undeflife 是的,ffmpeg -ss 00:00:00 -t 00:00:30 这种也需要操作两次。现在只发现格式工厂可以一步把视频分成两部分保存。只是它的按大小分割视频出了点功能上的差错。
|
12
yongligua 2020-10-02 10:53:03 +08:00 via Android
ffmpeg -fs 可以么…
|
13
Apol1oBelvedere OP @yongligua 可以实现按大小切割“-fs limit_size:set the limit file size in bytes”,但是需要操作两次,是否有办法设置参数后一个命令直接将视频分割为两部分?
|
14
xmumiffy 2020-10-02 11:05:20 +08:00 via Android
mp4tools 应该能一次性完成,不过其实没差别,mp4 可以时间跳转,你分两次操作也不会变成读两次完整文件
|
15
Apol1oBelvedere OP @xmumiffy mp4tools 只能按时间分割文件,不能按大小分割文件。但是按时间分割可以一次分个完成,很好。
暂时性总结: 1. mp4tools:只能按时间分割,可一次性分割成多段,速度快。(推荐) 2. boilsoft video splitter:可按时间分割(能提示分段大小,相当于按大小分割),只能一次分割出一个片段,综合功能不错。 3. 格式工厂:按时间分割,按分段数量分割使用不错,按分段大小分割不准,有问题。 |
16
lxilu 2020-10-02 23:23:03 +08:00 via iPhone 1
格式工厂用了 ffmpeg ;
为何要一次?性能?测否? |
17
Apol1oBelvedere OP @lxilu 因为上传到视频网站的大小和时长有限制,故需要对视频文件分割后上传。多个视频文件分割时,一次把单个文件直接分割好最方便快捷。
ffmpeg 如果能有脚本直接输入分段大小或分段时长,并直接分好一整个文件,那就很方便了。 目前 mp4tools 里的 MP4splitter 能按时间一步到位分割好,格式工厂的按大小分割有点问题。 |
18
lxilu 2020-10-03 20:24:42 +08:00
就两行命令啊
|
19
Apol1oBelvedere OP @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" |
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"; |
21
Apol1oBelvedere OP @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"; |
22
JinTianYi456 2020-11-29 10:13:07 +08:00
@msg7086 #6 为何我 macos 运行 mp4box 看起来是要把整个 video.mp4 载入到内存,我哪来那么多内存哦。
|