吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 477|回复: 17
收起左侧

[资源求助] 求分割视频时长的ffmpeg代码

[复制链接]
744899 发表于 2024-5-20 11:08
50吾爱币
就是一堆视频,他是1小时一小时的视频,然后剪成45分钟,剩下的15分钟合并到下一个视频上再剪成45分钟,然后剩下的30分钟合并到下一个,剪成45分钟,依次循环

最佳答案

查看完整内容

[mw_shl_code=asm,true]@echo off chcp 65001 >nul set "NewFolder=AfterSplit" set "TempFile=MergeList.txt" cd /d "%~dp0" if not exist "%NewFolder%" ( md "%NewFolder%" ) setlocal enabledelayedexpansion set "ReWrite=0" set "MergeNum=1000" >"%TempFile%" type nul for /f "delims=" %%i in ('dir /b /a-d *.mp4') do ( echo %%i set /a ReWrite+=1 >>"%TempFile%" echo file '%%i' ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Batcher 发表于 2024-5-20 11:08
[Asm] 纯文本查看 复制代码
@echo off
chcp 65001 >nul
set "NewFolder=AfterSplit"
set "TempFile=MergeList.txt"
cd /d "%~dp0"
if not exist "%NewFolder%" (
    md "%NewFolder%"
)
setlocal enabledelayedexpansion
set "ReWrite=0"
set "MergeNum=1000"
>"%TempFile%" type nul
for /f "delims=" %%i in ('dir /b /a-d *.mp4') do (
    echo %%i
    set /a ReWrite+=1
    >>"%TempFile%" echo file '%%i'
    REM 每3个原始视频合并为1个临时视频
    if !ReWrite! == 3 (
        set /a MergeNum+=1
        set "NewFile=AfterMerge!MergeNum!.mp4"
        del /f /q "!NewFile!" >nul 2>&1
        ffmpeg -f concat -safe 0 -i "%TempFile%" -c copy "!NewFile!"
        REM 临时视频拆分成45分钟1个
        set /a FileNum+=1
        ffmpeg -ss 0:00:00 -i "!NewFile!" -t 0:45:00 -c copy "%NewFolder%\!MergeNum!_1.mp4"
        set /a FileNum+=1
        ffmpeg -ss 0:45:00 -i "!NewFile!" -t 0:45:00 -c copy "%NewFolder%\!MergeNum!_2.mp4"
        set /a FileNum+=1
        ffmpeg -ss 1:30:00 -i "!NewFile!" -t 0:45:00 -c copy "%NewFolder%\!MergeNum!_3.mp4"
        set "ReWrite=0"
        >"%TempFile%" type nul
        del /f /q "!NewFile!" >nul 2>&1
    )
)

打开记事本,复制粘贴以上代码,文件,另存为:
    文件名:MyRun.bat
    编码:UTF-8
下载命令行工具 FFmpeg 例如:ffmpeg-n7.0-latest-win64-gpl-7.0.zip
    https://github.com/BtbN/FFmpeg-Builds/releases
解压缩之后把 ffmpeg.exe 和此脚本放在同一个文件夹下
双击执行脚本:MyRun.bat
jtq1234 发表于 2024-5-20 11:40
 楼主| 744899 发表于 2024-5-20 11:46
 楼主| 744899 发表于 2024-5-20 11:47
@Batcher 大佬能不能帮忙弄下
jtq1234 发表于 2024-5-20 12:19
之前有一个脚本是选4个合并,但我这里测试并不能每次都100%成功
比方说我有10个文件夹,每个文件夹里有20个文件,应该合并出来5个。结果有的文件夹是5个,有的有3个,有的是4个
后来么,合并,我还是选择gui方式的了。分割没问题。
 楼主| 744899 发表于 2024-5-20 13:14
jtq1234 发表于 2024-5-20 12:19
之前有一个脚本是选4个合并,但我这里测试并不能每次都100%成功
比方说我有10个文件夹,每个文件夹里有20 ...

能不能视频放一个文件,然后按照顺序合并呢
cndeng 发表于 2024-5-20 14:14
[Bash shell] 纯文本查看 复制代码
video_dir="mp4"
count_source=0
count_merge=0
fname=""
for i in $(ls $video_dir|sort -n);do
        let count_source+=1
        if [ $(( count_source % 3)) -eq 0 ];then
                let count_merge+=1
                fname="$fname -i $i"
                echo ffmpeg -f concat -safe 0 $fname -c copy merged_video_${count_merge}.mp4
                fname=""
        else
                fname="$fname -i $i"
        fi
done

for i in merged_video_*.mp4; do
    ffmpeg -i "$i" -t 00:45:00 -c copy "${i%.*}_part1.mp4"
    ffmpeg -i "$i" -ss 00:45:00 -t 00:45:00 -c copy "${i%.*}_part2.mp4"
    ffmpeg -i "$i" -ss 00:90:00 -t 00:45:00 -c copy "${i%.*}_part3.mp4"
    ffmpeg -i "$i" -ss 00:135:00 -c copy "${i%.*}_part4.mp4"
done
 楼主| 744899 发表于 2024-5-20 14:23
cndeng 发表于 2024-5-20 14:14
[mw_shl_code=bash,true]
video_dir="mp4"
count_source=0

你这是用python的吗,我不会用
 楼主| 744899 发表于 2024-5-20 16:50
Batcher 发表于 2024-5-20 16:42
[mw_shl_code=asm,true]@echo off
chcp 65001 >nul
set "NewFolder=AfterSplit"

命令中间好像有报错的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 19:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表