视频转音频
- 安装依赖
pip install ffmpy3
- 报错1
点击查看详情
目录已存在,即将保存! ffmpeg -i C:\work\brucepk\test\7251538642030611746.mp4 -vn -ar 44100 -ac 2 -ab 192 -f wav C:\work\brucepk\output\7251538642030611746.wav Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\site-packages\ffmpy3.py", line 120, in run stderr=stderr File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 709, in __init__ restore_signals, start_new_session) File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 997, in _execute_child startupinfo) FileNotFoundError: [WinError 2] 系统找不到指定的文件。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\work\eclipse-workspace\demo\src\test1\__init__.py", line 37, in <module> ff.run() File "C:\ProgramData\Anaconda3\lib\site-packages\ffmpy3.py", line 124, in run raise FFExecutableNotFoundError("Executable '{0}' not found".format(self.executable)) ffmpy3.FFExecutableNotFoundError: Executable 'ffmpeg' not found
-
解决方案,安装ffmpeg
-
直接解压,复制路径
-
配置环境变量
-
打开cmd测试
-
新建文件夹,将mp4视频放到如下目录
-
完整代码
import os from ffmpy3 import FFmpeg def mkdir_output(output_dir): existence = os.path.exists(output_dir) if not existence: print('创建音频存放目录') os.makedirs(output_dir) # 创建目录 os.chdir(output_dir) # 切换到创建的文件夹 return True else: print('目录已存在,即将保存!') return False if __name__ == '__main__': filepath = r"C:\work\brucepk\test" # 待转换视频存放的路径 os.chdir(filepath) # 切换到改路径下 filename = os.listdir(filepath) # 得到文件夹下的所有文件名称 output_dir = r'C:\work\brucepk\output' # 转换后音频文件存放的路径 mkdir_output(output_dir) for i in range(len(filename)): # windows电脑记得把下面两处的 "/" 换成 "\\" changefile = filepath+"\\"+filename[i] outputfile = output_dir+"\\"+filename[i].replace('mp4', 'wav').replace('mkv', 'wav')\ .replace('rmvb', 'wav').replace('3gp', 'wav').replace('avi', 'wav')\ .replace('mpeg', 'wav').replace('mpg', 'wav').replace('dat', 'asf')\ .replace('wmv', 'wav').replace('flv', 'wav').replace('mov', 'wav')\ .replace('mp4', 'wav').replace('ogg', 'wav').replace('ogm', 'wav')\ .replace('rm', 'wav') ff = FFmpeg( executable='C:\\work\\ffmpeg\\bin\\ffmpeg.exe', inputs={changefile: None}, outputs={outputfile: '-vn -ar 44100 -ac 2 -ab 192 -f wav'} ) print(ff.cmd) ff.run()
- 控制台输出
点击查看详情
目录已存在,即将保存! C:\work\ffmpeg\bin\ffmpeg.exe -i C:\work\brucepk\test\7251538642030611746.mp4 -vn -ar 44100 -ac 2 -ab 192 -f wav C:\work\brucepk\output\7251538642030611746.wav ffmpeg version 6.1.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (Rev10, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband libavutil 58. 29.100 / 58. 29.100 libavcodec 60. 31.102 / 60. 31.102 libavformat 60. 16.100 / 60. 16.100 libavdevice 60. 3.100 / 60. 3.100 libavfilter 9. 12.100 / 9. 12.100 libswscale 7. 5.100 / 7. 5.100 libswresample 4. 12.100 / 4. 12.100 libpostproc 57. 3.100 / 57. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\work\brucepk\test\7251538642030611746.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.29.100 comment : vid:v0300fg10000ciha66rc77u1l7n4i2i0 Duration: 00:00:37.82, start: 0.033008, bitrate: 4157 kb/s Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920 [SAR 1:1 DAR 9:16], 3706 kb/s, 60 fps, 60 tbr, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 64 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:1 -> #0:0 (aac (native) -> pcm_s16le (native)) Press [q] to stop, [?] for help [pcm_s16le @ 000001ea28c0bc00] Bitrate 192 is extremely low, maybe you mean 192k Output #0, wav, to 'C:\work\brucepk\output\7251538642030611746.wav': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 ICMT : vid:v0300fg10000ciha66rc77u1l7n4i2i0 ISFT : Lavf60.16.100 Stream #0:0(und): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] encoder : Lavc60.31.102 pcm_s16le size= 0kB time=00:00:00.06 bitrate= 0.0kbits/s speed=N/A [out#0/wav @ 000001ea2919e540] video:0kB audio:6504kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001862% size= 6504kB time=00:00:37.79 bitrate=1409.6kbits/s speed= 738x
- 文件夹输出,使用播放器播放,音频与视频符合
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-03-02 mybatis plus 总结