无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2930|回复: 18

[原创] 视频多点截取重新合并的小玩意儿

[复制链接]
发表于 2018-7-21 08:00:20 | 显示全部楼层 |阅读模式
本帖最后由 x9tian 于 2019-5-26 13:10 编辑

我写它的用途:
1:视频占用大,我看着不舒服。
2:有些视频废话太多,我看着也不舒服。
3:好吧我承认:
小电影占盘太多,
每次看还要拖进度条,
关键是放在手机里面占用太大: 一个就1~2 GiB 手机装不了几个的,手机不能只装小电影还要存别的东西的好不这么大而关键播放点就那么四五处
(小电影才是重点
有需求就有创作。
如是想到了ffmpeg 这玩意儿是神器啊,视频 音频,连直播都能干。

更新了下批处理, 新的批处理 免疫空格文件夹文件名和一些乖装的文件名(括号 还有#号不免疫)
  1. @echo off
  2. cls
  3. setlocal  ENABLEDELAYEDEXPANSION
  4. for /f "tokens=1,2 delims=#" %%i in ('more test.txt') do (
  5. set "input=%%~i"
  6. set "names=%%~nxi"
  7. set "names_n=%%~ni"
  8. set "names_x=%%~xi"
  9. set "output=%%~j"
  10. goto :st
  11. )
  12. :st

  13. if "%output:~-1%"=="\" set "output=%output:~0,-1%"

  14. (
  15. for /f "tokens=1-3 delims=[] " %%i in ('more +1 test.txt^|find /n /v ""') do (

  16.         for /f "tokens=1,2 delims=:" %%a in ("%%j") do  (
  17.                  set /a  "HH%%i=(%%a*60+1%%b%%100)/3600","MM%%i=((%%a*60+1%%b%%100)%%3600)/60","SS%%i=(%%a*60+1%%b%%100)%%60"
  18.         )
  19.         for /f "tokens=1,2 delims=:" %%a in ("%%k") do  (
  20.                  set /a  "HH%%i_=(%%a*60+1%%b%%100)/3600","MM%%i_=((%%a*60+1%%b%%100)%%3600)/60","SS%%i_=(%%a*60+1%%b%%100)%%60"
  21.         )
  22.         ffmpeg  -y -ss !HH%%i!:!MM%%i!:!SS%%i! -to !HH%%i_!:!MM%%i_!:!SS%%i_!  -i  "%input%" -c copy "%output%\%names_n%-%%i%names_x%"
  23.         echo.file '%output%\%names_n%-%%i%names_x%'
  24.         set "dels=!dels! "%output%\%names_n%-%%i%names_x%""
  25. )
  26. )>"%temp%\%names_n%.txt"
  27. ffmpeg -f concat -i "%temp%\%names_n%.txt" -c copy "%output%\%names%"
  28. del /q /f "%temp%\%names_n%.txt"
  29. pause
  30. for  %%i in (%dels%) do del /a /f %%i 2>nul
复制代码

注意配套的test.txt范本
1:范本不能有空行(因为用find /n 进行了排序)
2:"G:\my Files\download\楚汉风云\楚汉传奇 01_高清.mp4" 为要加工的视频,路径和文件名支持空格和一些乖装的文件名(括号 还有#号不免疫)
3:"E:\新建 文件夹"  为视频输出目录 ("?:" , "?:\" ,  "?:\abc"  ,"?:\a bc\de  f \")种类型文件夹或根目录都行.  重点:和源文件同一个目录它会干掉你的源文件 因为生存的也是相同文件名如 H:\xxx.mkv,如果你不要留源文件的话当我没说。
4:任何FFMPEG 支持的视频格式均可
5:文件名不要有带括号 “()” ,“[]” “#” ,当然还有带双惊叹号 “!”文件路径这些乖装的文件夹能处理,但是尽量能别用,就不用。
6:时间是以分钟为最高单位。比如 01:05:34 应写为 65:34
7:"G:\my Files\download\楚汉风云\楚汉传奇 01_高清.mp4"#"E:\新建 文件夹" (是用符号#间隔了,请照范本所示加上)12:38 14:23  (12:38为截取开始位置,14:23截取结束位置  不要写反了顺序。)


新的范本示例
  1. "G:\my Files\download\楚汉风云\楚汉传奇 01_高清.mp4"#"E:\新建 文件夹"
  2. 12:38 14:23
  3. 25:33 36:15
  4. 65:34 88:14
  5. 复制代码
复制代码


从优酷里面提取的FFMPEG version2.5.3做好的成品直截可用
链接密码: hc6w
网盘里面的范本和批处理也更新了
 楼主| 发表于 2018-7-21 08:09:05 | 显示全部楼层
本帖最后由 x9tian 于 2018-7-21 15:34 编辑

才发现如果
if "%output:~-1%"=="\" set "output=%output:~0,-1%"
用code引用   "\" 会变成
  1. ""
复制代码
幸亏眼尖发现了改成 "\\" 就显示
  1. "\"
复制代码


这是老版本的 批处理和范本,现在一楼更新了批处理
  1. @echo off
  2. cls
  3. setlocal  ENABLEDELAYEDEXPANSION
  4. for /f "tokens=1-3 delims=[] " %%i in ('more test.txt^|find /n /v ""') do (
  5. set "input=%%~j"
  6. set "names=%%~nxj"
  7. set "names_n=%%~nj"
  8. set "names_x=%%~xj"
  9. set "output=%%~k"
  10. goto :st
  11. )
  12. :st

  13. if "%output:~-1%"=="\" set "output=%output:~0,-1%"

  14. (
  15. for /f "tokens=1-3 delims=[] " %%i in ('more +1 test.txt^|find /n /v ""') do (

  16.         for /f "tokens=1,2 delims=:" %%a in ("%%j") do  (
  17.                  set /a  "HH%%i=(%%a*60+1%%b%%100)/3600","MM%%i=((%%a*60+1%%b%%100)%%3600)/60","SS%%i=(%%a*60+1%%b%%100)%%60"
  18.         )
  19.         for /f "tokens=1,2 delims=:" %%a in ("%%k") do  (
  20.                  set /a  "HH%%i_=(%%a*60+1%%b%%100)/3600","MM%%i_=((%%a*60+1%%b%%100)%%3600)/60","SS%%i_=(%%a*60+1%%b%%100)%%60"
  21.         )
  22.         ffmpeg  -i %input% -vcodec copy -acodec copy -ss !HH%%i!:!MM%%i!:!SS%%i! -to !HH%%i_!:!MM%%i_!:!SS%%i_! %output%\%names_n%-%%i%names_x% -y
  23.         echo.file '%output%\%names_n%-%%i%names_x%'
  24.         set "dels=!dels! "%output%\%names_n%-%%i%names_x%""
  25. )
  26. )>"%temp%\%names_n%.txt"
  27. ffmpeg -f concat -i %temp%\%names_n%.txt -c copy %output%\%names_n%%names_x%
  28. del /q /f "%temp%\%names_n%.txt"
  29. pause
  30. for  %%i in (%dels%) do del /a /f %%i 2>nul

复制代码


注意配套的test.txt范本
1:范本不能有空行(因为用find /n 进行了排序)
2:H:\xxx.mkv 为要加工的视频,文件名不要有空格,也不要带引号 (人懒没处理这些)
3:e:\  为视频输出目录 (?: , ?:\ ,  ?:\abc ?:\abc\def )种类型文件夹或根目录都行.  重点:和源文件同一个目录它会干掉你的源文件 因为生存的也是相同文件名 H:\xxx.mkv,如果你不要留源文件的话当我没说。
4:任何FFMPEG 支持的视频格式均可
5:文件名不要有空格和带括号 “()” ,“[]”
6:时间是以分钟为最高单位。比如 01:05:34 应写为 65:34
7:H:\xxx.mkv e:\  (是用空格间隔了,别看花了眼)12:38 14:23  (12:38为截取开始位置,14:23截取结束位置  不要写反了顺序。)
旧的范本示例
  1. H:\xxx.mkv e:\
  2. 12:38 14:23
  3. 25:33 36:15
  4. 65:34 88:14
复制代码
回复

使用道具 举报

发表于 2018-7-21 09:37:08 | 显示全部楼层
强!有想法,支持一个!
回复

使用道具 举报

发表于 2018-7-21 09:48:19 | 显示全部楼层
不错的视频分割合并小软件了啊,支持楼主了。
回复

使用道具 举报

发表于 2018-7-21 10:15:24 | 显示全部楼层
不会用啊。
回复

使用道具 举报

发表于 2018-7-21 10:19:42 | 显示全部楼层
看看好用不,楼主辛苦。
回复

使用道具 举报

发表于 2018-7-21 10:37:51 | 显示全部楼层
别说,这个还真实用。感谢楼主有心有匠心有巧心!
回复

使用道具 举报

发表于 2018-7-21 10:39:33 | 显示全部楼层
不会用哦。
回复

使用道具 举报

发表于 2018-7-21 11:13:46 | 显示全部楼层
不错,支持一下!
回复

使用道具 举报

发表于 2018-7-21 12:49:56 | 显示全部楼层
请问FLV格式的视频支持吗?
回复

使用道具 举报

 楼主| 发表于 2018-7-21 13:48:27 | 显示全部楼层

照着范本写test.txt 文件,然后运行 批处理就行了,全自动处理

评分

参与人数 1无忧币 +5 收起 理由
ipkh + 5

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2018-7-21 13:50:54 | 显示全部楼层

自己把要处理的视频,时间段按 test.txt里面的范本照着写好。
然后运行批处理,一键就生成了
回复

使用道具 举报

 楼主| 发表于 2018-7-21 14:14:15 | 显示全部楼层
有阴也有阳 发表于 2018-7-21 12:49
请问FLV格式的视频支持吗?

FLV严格来说是图片集合,我记得FFMPEG 是支持的。
我这个是截取视频中的视频时间段,不会修改视频文件的本身 ,应当是没有问题的。
回复

使用道具 举报

发表于 2018-7-21 14:56:56 | 显示全部楼层
有需求就有创作
回复

使用道具 举报

发表于 2018-7-21 17:12:54 | 显示全部楼层
谢谢分享,试试小玩具
回复

使用道具 举报

发表于 2018-7-21 20:02:09 | 显示全部楼层
哈哈!有时间试试!
回复

使用道具 举报

发表于 2018-7-21 20:49:02 | 显示全部楼层
楼主看下怎样去除多处水印.
回复

使用道具 举报

发表于 2018-7-22 06:51:30 | 显示全部楼层
谢谢,有想法还有能力实现,牛!
回复

使用道具 举报

发表于 2018-7-22 07:32:51 | 显示全部楼层
谢谢楼主的分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-28 19:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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