ネットワークからこの記事のテキストや画像、唯一学ぶため、交換は、ない任意の商業目的のために、どんな質問ならば、治療のための私達に連絡してください、元の作者に属します。
著者:PKの兄
PS:必要なPythonの学習教材は、小さなパートナーに追加することができた場合は、自分自身を取得するには、以下のリンクをクリックしてください
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef
インストールのインポート
クイックインストールピップコマンド。
ピップffmpy3をインストール
我々はosモジュールをインポートする必要があるので、輸入はちょうど、ffmpy3ライブラリにディレクトリに格納されている店舗のビデオとオーディオにディレクトリを読むために劣っ必要がインストールされています。
輸入OS から ffmpy3 輸入のFFmpeg
オーディオを保存するディレクトリを作成します。
我々は、我々はこのディレクトリが存在しない場合、私たちは変わらず、本を作成し、判断を下すよりインテリジェントにするために指定したフォルダに保存されている変換されたオーディオファイルを配置する必要があります。
。1 DEFのmkdir_output(OUTPUT_DIR): 2 存在= os.path.exists(OUTPUT_DIR) 3。 IF ないの存在: 。4 印刷(' オーディオストレージディレクトリを作成' ) 。5 os.makdirs(OUTPUT_DIR) #ディレクトリを作成します 6。 os.chdir(OUTPUT_DIR) #あなたが作成したフォルダにスイッチ 7 の復帰真 8 他: 9 印刷(「!ディレクトリがすでに存在して、保存しようとしている」) 10 リターン偽を
私たちは、あなたが次の呼び出しを待つことができたときにストレージ・パスを考えると、引数としてパスを格納します。
ファイルのフォーマットの処理
私たちは、ビデオモジュールのOSのファイル名がリストに読み出すと、フォルダ内のオーディオファイルにビデオを変換する必要があります。
1ファイルパスR&LT = 「/ユーザ/ brucepk /テスト」 #の記憶されたビデオ変換するパス 2 os.chdir(ファイルパス) #の変更パスへの切り替えを 3名= os.listdir(ファイルパス) #フォルダ内のすべてのファイル名を与えること
その後、我々は、オーディオ形式の拡張子は、多くのビデオファイル形式にすべてのビデオファイルを置き換える、私は基本的に共通記載されています。
指定されたディレクトリに保存されている適切なディレクトリWAVオーディオファイルにすべてのビデオファイルを変換します。
オーディオファイルのプロパティ
ただ、もちろんないのファイルの拡張子を変更、変化なしのファイル属性、そのようなファイルが読み込まないことができない、我々は、変換後のオーディオファイルのそれの属性オーディオギブのFFmpegの方法が必要です。
1 FF = FFmpegの( 2 =入力:{なしchangefile}、 3 :{OUTPUTFILE出力= ' -vn -Ar 44100 -ac 2 -A-192 -f WAV ' } 4 ) 5 プリント(ff.cmd) 6 ff.run ()
効果
私は効果をテストするために、テスト用ディレクトリに2つのビデオファイルを、私はあなたの携帯電話のMP4形式の動画で撮ること1を入れて、音声を記録し、他のビデオフォーマットは、MKVムービーです。
コードを実行した後、それは自動的に変換されたオーディオファイルのあるフォルダの出力を作成します。
オーディオソフトウェアは、オープンサポートし、あなたは明らかにオーディオを聞くことができます。
ランエラー処理
1、あなたは、コードを実行すると、以下のように、Windowsシステムは、ffmpegの現れのようなエラーを見つけられないことがあります。
この時点で、私たちは自分のコンピュータのバージョンに応じて適切なインストールパッケージをダウンロードするには、以下のアドレスを訪問し、FFmpegのをダウンロードする必要があります。
ファイル解凍ffmpegの、オープンffmpy3.pyファイル(Ctrlキー押しながらffmpy3をクリックして、すぐにモジュールにジャンプする)、実行可能ファイルの絶対パスにffmpeg.exeパラメータ以下の実行可能コードの値。
__init__(self, executable='ffmpeg', global_options=None, inputs=None, outputs=None)
解压后的 ffmpeg.exe 文件在 bin 目录下,把路径替换掉。
修改后,再次运行,就可以顺利转换了。
2、路径拼接的问题
我的代码是在 Mac 系统中完成的,Mac 中路径是用 / 隔开,而 Windows 中是用 \,为了防止收到转义字符的影响,路径前面最好加上 r。
filepath = r"/Users/brucepk/test"
所以在路径拼接时,Windows 电脑记得 "/" 换成 ""。
changefile = filepath+"/"+filename[i]
以上时 Mac 系统的写法,Windows 中改成:
changefile = filepath+"\\"+filename[i]
完整代码
1 import os 2 from ffmpy3 import FFmpeg 3 4 def mkdir_output(output_dir): 5 existence = os.path.exists(output_dir) 6 if not existence: 7 print('创建音频存放目录') 8 os.makedirs(output_dir) # 创建目录 9 os.chdir(output_dir) # 切换到创建的文件夹 10 return True 11 else: 12 print('目录已存在,即将保存!') 13 return False 14 15 16 if __name__ == '__main__': 17 filepath = r"/Users/brucepk/test" # 待转换视频存放的路径 18 os.chdir(filepath) # 切换到改路径下 19 filename = os.listdir(filepath) # 得到文件夹下的所有文件名称 20 21 output_dir = r'/Users/brucepk/output' # 转换后音频文件存放的路径 22 mkdir_output(output_dir) 23 for i in range(len(filename)): 24 # windows电脑记得把下面两处的 "/" 换成 "\\" 25 changefile = filepath+"/"+filename[i] 26 outputfile = output_dir+"/"+filename[i].replace('mp4', 'wav').replace('mkv', 'wav')\ 27 .replace('rmvb', 'wav').replace('3gp', 'wav').replace('avi', 'wav')\ 28 .replace('mpeg', 'wav').replace('mpg', 'wav').replace('dat', 'asf')\ 29 .replace('wmv', 'wav').replace('flv', 'wav').replace('mov', 'wav')\ 30 .replace('mp4', 'wav').replace('ogg', 'wav').replace('ogm', 'wav')\ 31 .replace('rm', 'wav' ) 32 33 FF = FFmpegの( 34個 の入力= {changefile:なし}、 35の 出力= {OUTPUTFILE:' -vn -Ar 44100 -ac 2 -A-192 -f WAV ' } 36 ) 37 プリント(ff.cmd) 38 ff.run()