找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 84590|回复: 24

[文件操作] 【已解决】目录下及其全部子目录下的 图片通过批处理和ffmpeg转换为别的格式?

[复制链接]
发表于 2014-9-11 16:39:40 | 显示全部楼层 |阅读模式
问个问题 怎样把一个目录下及其全部子目录下的 图片通过批处理和ffmpeg转换为别的格式?

@echo off
for /r . %%a in (*.jpg) do C:\bin\ffmpeg.exe -i %%~na.jpg  -pix_fmt yuv420p -vcodec libx265 -preset placebo  -x265-params qp=32 %%~na.mkv
for /r . %%a in (*.png) do C:\bin\ffmpeg.exe -i %%~na.png  -pix_fmt yuv420p -vcodec libx265 -preset placebo  -x265-params qp=32 %%~na.mkv
@pause

我现在写的……
结果出错
 楼主| 发表于 2014-9-11 16:42:27 | 显示全部楼层
我认为错误的原因应该是目录对不上 但是我不知道怎么去改……
 楼主| 发表于 2014-9-11 17:26:59 | 显示全部楼层
会了 不过这样很低效率啊……

@echo off
for /f "delims=" %%i in ('dir /s /ad /b "c:\1212"') do (
cd /d %%i
for /r . %%a in (*.jpg) do C:\bin\ffmpeg.exe -i %%~na.jpg  -pix_fmt yuv420p -vcodec libx265 -preset placebo  -x265-params qp=32 %%~na.mkv
for /r . %%a in (*.png) do C:\bin\ffmpeg.exe -i %%~na.png  -pix_fmt yuv420p -vcodec libx265 -preset placebo  -x265-params qp=32 %%~na.mkv
)
@pause
发表于 2014-9-11 19:15:11 | 显示全部楼层
同上,ffmpeg支持文件序列,可以的话建议用序列来实现
发表于 2014-9-11 19:15:59 | 显示全部楼层
噢,好吧,没注意是包含子目录
 楼主| 发表于 2014-9-11 20:01:35 | 显示全部楼层
本帖最后由 tcasdsss 于 2014-9-11 20:25 编辑

回复 5# CrLf


    那该怎么整? 最关键的是目录很多 子目录也有好几级
大神能不能做个判断语句 目录下没有jpg和png就不搞了 直接跳过 目录下有图片才搞
 楼主| 发表于 2014-9-11 20:04:14 | 显示全部楼层
现在的结果仍然是先出错 再去转文件 我要转7万个文件 效率就太低了 怎么才能解决呢?
发表于 2014-9-12 00:39:18 | 显示全部楼层
回复 7# tcasdsss


7万个有点多...
百度了下,试了下好像是没辙,mkfifo 命令在 win 下貌似无反应
http://blog.csdn.net/vblittleboy/article/details/8560065
发表于 2014-9-12 01:01:16 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /a-d /b "C:\1212" ^| findstr "jpg$ png$"') do (
  3.     C:\bin\ffmpeg.exe -i "%%~nxi" -pix_fmt yuv420p -vcodec libx265 -preset placebo -x265-params qp=32 "%%~ni.mkv"
  4. )
  5. pause
复制代码
发表于 2014-9-12 09:42:08 | 显示全部楼层
  1. findstr "jpg$ png$"
复制代码
回复 9# DAIC

请教一下,$这个字符在这句的意思是什么?
我试了一下,挺给力的,能快速的查找。
发表于 2014-9-12 10:49:35 | 显示全部楼层
 楼主| 发表于 2014-9-12 11:11:39 | 显示全部楼层
回复 9# DAIC


    悲剧还是会出错…… ffmpeg还是先出错再转 之前还有一段时间会黑着效率更低……
发表于 2014-9-12 11:16:54 | 显示全部楼层
回复 12# tcasdsss


试试这个是否报错:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /a-d /b "C:\1212" ^| findstr "jpg$ png$"') do (
  3.     echo 正在处理 %%i
  4.     C:\bin\ffmpeg.exe -i "%%i" -pix_fmt yuv420p -vcodec libx265 -preset placebo -x265-params qp=32 "%%~ni.mkv"
  5. )
  6. pause
复制代码
先解决报错的问题,效率的问题稍后再优化。
 楼主| 发表于 2014-9-12 11:19:55 | 显示全部楼层
本帖最后由 tcasdsss 于 2014-9-12 11:28 编辑

回复 13# DAIC


    报错是ffmpeg报错…… ffmpeg只能转%cd%目录下的文件 输出的是子目录就会报错 如果能自动换 %cd%的位置就应该不出错了
就是说要不停地变换 %cd%
 楼主| 发表于 2014-9-12 11:27:40 | 显示全部楼层
回复 13# DAIC


    和我一楼出现了同样的错误 只报错不转换
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:53 , Processed in 0.022105 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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