首页 > 其他分享 >视频转音频

视频转音频

时间:2024-03-02 18:23:28浏览次数:20  
标签:视频 enable -- 音频 work replace output wav

  • 安装依赖
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

  • 直接解压,复制路径

  • 配置环境变量

  • 打开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    
  • 文件夹输出,使用播放器播放,音频与视频符合

标签:视频,enable,--,音频,work,replace,output,wav
From: https://www.cnblogs.com/dogleftover/p/18048921

相关文章

  • 如何利用IDM下载央视网视频
    前言对于大名鼎鼎的下载器IDM,大家一定不陌生吧,所以对于它的基本介绍和使用我就不过多阐述了,但是在对央视网视频直接用IDM嗅探进行下载资源后,播放视频时往往会出现乱码的情况,经过探索,我发现了一种完美的解决方法。第一步:不要立即下载,点击稍后下载第二步:打开IDM软件主面板点击......
  • AI智能分析网关V4智慧环保/智慧垃圾站视频智能分析与监控方案
    一、背景介绍随着城市化进程的加速,垃圾处理问题日益受到人们的关注,传统的垃圾站管理方式已经无法满足现代社会的需求。针对当前垃圾站的监管需求,TSINGSEE青犀可基于旗下视频智能检测AI智能分析网关V4与安防监控视频综合管理系统EasyCVR平台,打造智慧垃圾站视频监控与智能分析方案......
  • Tiktok api接口 获取视频列表、用户详情,视频无水印数据采集
    iDataRiver平台https://www.idatariver.com/zh-cn/提供开箱即用的Tiktok数据采集API,供用户按需调用。接口使用详情请参考Tiktok接口文档接口列表1.获取用户详情参数类型是否必填默认值示例值描述apikeystring是idr_***从控制台里复制apikeyuser_idnu......
  • 前端学习-vue视频学习003-setup(重要)
    学习教程-尚硅谷视频将原vue2的格式改为vue3---使用setup要点:this在vue3中被弱化,setup函数中不能使用this定义数据时,如果不是响应式的(暂时还不是很理解响应式),不会触发页面的变化vue3支持一个标签直接写多次,如<template><Person/><Person/><Person/></t......
  • 【C++】【OpenCV-4.9.0】播放视频
    相较于之前的Python下的opencv读取视频流并展示,C++下有一些不同需要配置1、opencv\build文件夹的bin文件夹下的opencv_videoio_ffmpeg490_64.dll需要拷贝至工程文件中,或者将bin路径写入环境变量也可。(如果没有这个dll文件的话,可能会出现一直读取视频失败,即使用isOpened()返回fals......
  • 视频监控平台Easy1400视图库平台使用订阅功能的详细步骤
    Easy1400是一个智慧安防平台的视图平台设备级联操作指南。该平台提供内容图库作为信息存储和展示的核心,并应用设备级联技术实现不同平台和设备之间的高效协同工作。通过内容图库,企业和组织能够更高效地管理和展示视觉内容,提升品牌形象和用户体验。设备级联技术则使得不同平台和设......
  • nginx建立视频播放列表
    本地需要测试播放器,遂需要建立一个视频服务先将视频放到此地然后更改nginx.confserver{listen80;server_namelocalhost;#将m3u8文件夹映射到根目录下location/{roothtml/movies;autoin......
  • 前端学习-vue视频学习001-了解、创建项目
    尚硅谷vue3+Typescript教程安装node.js安装教程创建项目npmcreatevue@latest运行项目npmrundev出现报错“'vite'不是内部或外部命令,也不是可运行的程序或批处理文件。”处理方式安装依赖npmi.vue文件结构<template><!--html--></template><script>......
  • yolo7检测学习Bubbliiiing的视频有感——(2)FileNotFoundError: [Errno 2] No such file
    这个问题作为老程序员是不应该犯的,因为只是相对路径和绝对路径的问题按照步骤将对应的数据集放入目录后,运行voc_annotation.py想要生成两个txt文件,结果发现报错FileNotFoundError:[Errno2]Nosuchfileordirectory其实就是classes_path和VOCdevkit_path的路径不对,像我自己......
  • yolo7检测学习Bubbliiiing的视频有感——(1)no model named 'cv2'
    我一直以来也是喜欢用vscode,就跟随B导安装了vscode下载完B导提供的代码后如果想直接跟着视频B导的操作运行predict.py文件是不可能的,需要按照readme文档中的所有提示按照步骤放入所有文件首先针对nomodelnamedcv2这个错误我按照网上的教程先在terminal窗口查询自己是否安装......