Windows下ffmpeg批处理遍历当前文件夹下所有特定格式文件(如MP4等)无损提取视频音频且生成文件存到原视频文件夹下同时跳过已经处理的文件
Posted topia_csdn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下ffmpeg批处理遍历当前文件夹下所有特定格式文件(如MP4等)无损提取视频音频且生成文件存到原视频文件夹下同时跳过已经处理的文件相关的知识,希望对你有一定的参考价值。
使用场景说明
我习惯闲暇之余听考研政治课的音频
原版低级代码如下
for %%a in (*.mp4) do ffmpeg -threads 15 -i "%%a" -vn -acodec copy "%%a.aac" -n
pause
此代码仅仅能够实现将bat代码所在文件夹下的视频给无损且无转码高速转换为音频(上百倍速度)
注释:下面的采取的aac是常见视频的内嵌音频流,有的视频比如油管下载下来的mkv格式音乐视频内的音频为fltp格式等,用
ffmpeg -i 文件
即可获取文件内置默认音频的格式,如下若为fltp的格式音频,想要不转码高速输出就得修改aac为fltp
回到正题
之所以不能一个个文件夹下慢慢去一个个启动程序来处理,仅仅是因为我储存视频文件用的是机械硬盘,所以要是一个个文件夹分开的启动多个命令,由于机械硬盘结构设计局限,同时吞吐多个不同位置下的文件需要磁头来回到不同扇区工作,类似于分身乏术就会将几十mb/s的读取性能拉到可怜的个位数4mb/s左右,所以需要找到方法一个程序打开便能够读取多个文件夹下的视频来提取音频同时方便查找放音频到原来的视频所在文件夹下
for /r . %%a in (/*.mp4) do ffmpeg -threads 15 -i "%%a" -vn -acodec copy "%%a.aac" -n
pause
注解什么的懒得注解了,看这篇一样
(原文中用的是%%i 这里用的是%%a 不影响)
参考文章
https://www.cnblogs.com/xpwi/p/9626959.html
效果如下上百倍速度(有的甚至上千倍)
CPU占用超低同时磁盘占用效率极高
以上是关于Windows下ffmpeg批处理遍历当前文件夹下所有特定格式文件(如MP4等)无损提取视频音频且生成文件存到原视频文件夹下同时跳过已经处理的文件的主要内容,如果未能解决你的问题,请参考以下文章
Windows下ffmpeg批处理遍历当前文件夹下所有特定格式文件(如MP4等)无损提取视频音频且生成文件存到原视频文件夹下同时跳过已经处理的文件