标题: [文件操作] 批处理如何精确提取视频里面的图片? [打印本页]
作者: 877 时间: 2023-9-5 09:50 标题: 批处理如何精确提取视频里面的图片?
如何从视频中精确提取出来这5张图片~ 视频已经上传到网盘(如下)
链接: https://pan.baidu.com/s/1oY3NP_5Q57WnTlwzk4H0yQ 提取码: bat8
由图片合成的视频,每张图片运用了不同的上下左右缓慢移动的关键帧)
例如这个视频是5张图片合成的,如何精确提取出来较为完整的这5张图片?
还望大佬给写段代码,提前表示感谢了!
作者: 877 时间: 2023-9-5 10:05
本帖最后由 877 于 2023-9-6 01:05 编辑
多张图片合成的视频,怎样做到每张图片只抽最完整的一帧,而不是把视频分解成很多帧,还望大佬指教
作者: Batcher 时间: 2023-9-5 11:38
回复 1# 877
请把图片、视频、合并的命令打包上传到网盘看一下?
作者: 877 时间: 2023-9-6 00:08
回复 3# Batcher
大佬您好,我上传网盘了5张图片生成的视频,就是想能从视频中精确提取出来这5张图片~
链接: https://pan.baidu.com/s/1oY3NP_5Q57WnTlwzk4H0yQ 提取码: bat8
作者: 77七 时间: 2023-9-6 11:27
re:- ffmpeg -i 123.mp4 -an -vf select='eq(pict_type\,I)' -vsync 2 -f image2 image-%03d.png
复制代码
- 想弄成点击后先创建以*.mp4为名称的文件夹,然后
- 提取的png图片也在这个文件夹中
复制代码
我的ffmpeg,png报错,jpg成功。
- @echo off
- chcp 65001
- rem 批处理保存为utf-8编码格式
- for %%a in (*.mp4) do (
- md "%%~na"
- cmd /c ""ffmpeg" -i "%%~fa" -an -vf select='eq(pict_type\,I)' -vsync 2 -f image2 "%%~dpa/%%~na/image-%%03d.jpg""
- )
- pause
- 参考资料
- http://www.bathome.net/thread-66195-1-1.html
复制代码
写的有点复杂,批处理中单行直接执行ffmpeg命令可以成功,写入for中,%%0就会被扩展到批处理自身...参考buyiyang大佬的帖子使用cmd /c总算解决...
作者: 877 时间: 2023-9-7 18:57
回复 5# 77七
77七大佬,能给写个图片批量去水印的bat代码吗?
文件夹下多个图片需要去除水印,还请大佬费心帮助!
万分感谢!
作者: 77七 时间: 2023-9-7 21:35
回复 6# 877
得知道水印位置。网上找个去水印代码,套一下就行了。
- @echo off
- for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
- ffmpeg -i "%%i" -strict -2 -vf delogo=x=300:y=250:w=56:h=18:show=0 "%%~ni_2%%~xi"
- )
- pause
复制代码
作者: 877 时间: 2023-9-7 21:40
回复 7# 77七
收到大佬,非常感谢您!
最新求助帖,按照视频场景(镜头或者画面变化)拆分视频,您给看下吧~~
作者: 877 时间: 2023-9-7 22:55
回复 7# 77七 - @echo off
- for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
- ffmpeg -i "%%i" -strict -2 -vf delogo=x=300:y=250:w=56:h=18:show=0 "%%~ni_2%%~xi"
- )
- pause
复制代码
大佬,这段代码改成去水印的图片移动到自定义文件夹"已去水印"应该怎样写呢?
作者: 77七 时间: 2023-9-8 07:40
回复 9# 877
- @echo off
- md "已去水印" 2>nul
- for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
- ffmpeg -i "%%i" -strict -2 -vf delogo=x=300:y=250:w=56:h=18:show=0 "%~dp0已去水印\%%~ni_2%%~xi"
- )
- pause
复制代码
作者: 877 时间: 2023-9-8 08:36
回复 10# 77七
感谢大佬!ffmpeg镜头分割视频这方面您了解吗?
作者: 77七 时间: 2023-9-8 15:44
回复 11# 877
不了解
作者: 877 时间: 2023-9-10 15:11
回复 10# 77七 - @echo off
- chcp 65001
- rem 批处理保存为utf-8编码格式
- for %%a in (*.mp4) do (
- md "已抽第2帧"
- cmd /c ""ffmpeg" -i "%%~fa" -an -vf select='eq(pict_type\,I)' -vframes 2 -f image2 "%%~dpa/已抽第2帧/%%~na.png""
- )
- pause
复制代码
大佬,给优化一下这段代码吧,批量抽取第二帧到"已抽第2帧"文件夹。
作者: 77七 时间: 2023-9-10 19:41
回复 13# 877
要优化什么?
作者: 877 时间: 2023-9-10 20:36
本帖最后由 877 于 2023-9-10 20:40 编辑
回复 14# 77七
书写规范是不是有错误呢?会有红色错误代码- 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.
- av_interleaved_write_frame(): Invalid argument
复制代码
作者: 77七 时间: 2023-9-10 21:10
回复 15# 877
按报错提示修改
- @echo off
- chcp 65001
- rem 批处理保存为utf-8编码格式
- for %%a in (*.mp4) do (
- md "已抽第2帧"
- cmd /c ""ffmpeg" -i "%%~fa" -an -vf select='eq(pict_type\,I)' -vframes:v 1 -f image2 "%%~dpa/已抽第2帧/%%~na.png""
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |