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

[文件操作] 批处理如何精确提取视频里面的图片?

[复制链接]
发表于 2023-9-5 09:50:32 | 显示全部楼层 |阅读模式
如何从视频中精确提取出来这5张图片~ 视频已经上传到网盘(如下)

链接: https://pan.baidu.com/s/1oY3NP_5Q57WnTlwzk4H0yQ 提取码: bat8

由图片合成的视频,每张图片运用了不同的上下左右缓慢移动的关键帧)

例如这个视频是5张图片合成的,如何精确提取出来较为完整的这5张图片?

还望大佬给写段代码,提前表示感谢了!
 楼主| 发表于 2023-9-5 10:05:43 | 显示全部楼层
本帖最后由 877 于 2023-9-6 01:05 编辑

多张图片合成的视频,怎样做到每张图片只抽最完整的一帧,而不是把视频分解成很多帧,还望大佬指教
发表于 2023-9-5 11:38:36 | 显示全部楼层
回复 1# 877


    请把图片、视频、合并的命令打包上传到网盘看一下?
 楼主| 发表于 2023-9-6 00:08:18 | 显示全部楼层
回复 3# Batcher


    大佬您好,我上传网盘了5张图片生成的视频,就是想能从视频中精确提取出来这5张图片~

链接: https://pan.baidu.com/s/1oY3NP_5Q57WnTlwzk4H0yQ 提取码: bat8
发表于 2023-9-6 11:27:40 | 显示全部楼层
re:
  1. ffmpeg -i 123.mp4 -an -vf select='eq(pict_type\,I)' -vsync 2  -f image2 image-%03d.png
复制代码
  1. 想弄成点击后先创建以*.mp4为名称的文件夹,然后
  2. 提取的png图片也在这个文件夹中
复制代码



我的ffmpeg,png报错,jpg成功。
  1. @echo off
  2. chcp 65001
  3. rem 批处理保存为utf-8编码格式
  4. for %%a in (*.mp4) do (
  5.         md "%%~na"
  6.         cmd /c ""ffmpeg" -i "%%~fa" -an -vf select='eq(pict_type\,I)' -vsync 2 -f image2 "%%~dpa/%%~na/image-%%03d.jpg""
  7. )
  8. pause
  9. 参考资料
  10. http://www.bathome.net/thread-66195-1-1.html
复制代码


写的有点复杂,批处理中单行直接执行ffmpeg命令可以成功,写入for中,%%0就会被扩展到批处理自身...参考buyiyang大佬的帖子使用cmd /c总算解决...

评分

参与人数 1技术 +1 收起 理由
877 + 1 666,感谢大佬!万分感谢!

查看全部评分

 楼主| 发表于 2023-9-7 18:57:28 | 显示全部楼层
回复 5# 77七


    77七大佬,能给写个图片批量去水印的bat代码吗?

文件夹下多个图片需要去除水印,还请大佬费心帮助!

万分感谢!
发表于 2023-9-7 21:35:23 | 显示全部楼层
回复 6# 877


   得知道水印位置。网上找个去水印代码,套一下就行了。
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  3.         ffmpeg -i "%%i" -strict -2 -vf delogo=x=300:y=250:w=56:h=18:show=0 "%%~ni_2%%~xi"
  4. )
  5. pause
复制代码
 楼主| 发表于 2023-9-7 21:40:50 | 显示全部楼层
回复 7# 77七


    收到大佬,非常感谢您!

最新求助帖,按照视频场景(镜头或者画面变化)拆分视频,您给看下吧~~
 楼主| 发表于 2023-9-7 22:55:57 | 显示全部楼层
回复 7# 77七
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  3.         ffmpeg -i "%%i" -strict -2 -vf delogo=x=300:y=250:w=56:h=18:show=0 "%%~ni_2%%~xi"
  4. )
  5. pause
复制代码
大佬,这段代码改成去水印的图片移动到自定义文件夹"已去水印"应该怎样写呢?
发表于 2023-9-8 07:40:05 | 显示全部楼层
回复 9# 877


  
  1. @echo off
  2. md "已去水印" 2>nul
  3. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  4.         ffmpeg -i "%%i" -strict -2 -vf delogo=x=300:y=250:w=56:h=18:show=0 "%~dp0已去水印\%%~ni_2%%~xi"
  5. )
  6. pause
复制代码
 楼主| 发表于 2023-9-8 08:36:51 | 显示全部楼层
回复 10# 77七


    感谢大佬!ffmpeg镜头分割视频这方面您了解吗?
发表于 2023-9-8 15:44:42 | 显示全部楼层
回复 11# 877


   不了解
 楼主| 发表于 2023-9-10 15:11:58 | 显示全部楼层
回复 10# 77七
  1. @echo off
  2. chcp 65001
  3. rem 批处理保存为utf-8编码格式
  4. for %%a in (*.mp4) do (
  5.         md "已抽第2帧"
  6.         cmd /c ""ffmpeg" -i "%%~fa" -an -vf select='eq(pict_type\,I)' -vframes 2 -f image2 "%%~dpa/已抽第2帧/%%~na.png""
  7. )
  8. pause
复制代码
大佬,给优化一下这段代码吧,批量抽取第二帧到"已抽第2帧"文件夹。
发表于 2023-9-10 19:41:20 | 显示全部楼层
回复 13# 877


   要优化什么?
 楼主| 发表于 2023-9-10 20:36:52 | 显示全部楼层
本帖最后由 877 于 2023-9-10 20:40 编辑

回复 14# 77七


    书写规范是不是有错误呢?会有红色错误代码
  1. Could not get frame filename number 2 from pattern 'C:\Users\1\Desktop\-00003602.png'. Use '-frames:v 1' for a single image, or '-update' option, or use a pattern such as %03d within the filename.
  2. av_interleaved_write_frame(): Invalid argument
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 13:18 , Processed in 0.021223 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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