LoginSignup
1
9

More than 3 years have passed since last update.

とりあえず何でもffmpegでファイルを変換したい!!

Last updated at Posted at 2020-01-10

ラジオ音源を深層学習のデータにしたい

  • deeolearningにおいて重要なことはなんですか?
  • 「データでしょ!」(古い!!)
  • よって超A&Gのラジオデータをぶっこ抜いてデータとして使おうと考えました.
  • 注意著作権とか色々ありますので使用は各個人の自己責任で
  • いろんなデータの変換にも使えるので公開しておきまshowということ

プログラム手順

  1. 変換したいデータがあるディレクトリがある
  2. コマンドラインでインプットディレクトリとアウトディレクトリを指定
  3. あとはsubprocessを噛ましてffmpegで変換

ポイント

  • ffmpegのコマンドについて
  • 今回のプログラムではflvファイルをwavファイルに変換することと16000HZに変換を同時に行ってます。
  • ffmpegの簡単なまとめは以下の通り
#まずは拡張子の変換
$ffmpeg input.hoge output.hoge #hogeは拡張子

#サンプリングレートの変換
$ffmpeg input.hoge -ar 16000 output.hoge #-ar newsamplingrate

aandg.py
# -*- coding: utf-8 -*-
import sys
import glob
import os
import subprocess

#ディレクトリの指定
if len(sys.argv) != 3:
    print("python3 aandg.py [inputfile_dir] [outputfile_dir]")
    sys.exit()

else:
    print(sys.argv[1])
    inputpath=path = os.path.abspath(sys.argv[1])
    #今回は入力されたディレクトリの中の.flvのみをリスト化
    file_list=glob.glob(inputpath+"/*.flv")
    #アウトプットディレクトリなかったらっ作成
    if not os.path.exists(sys.argv[2]):
        os.mkdir(sys.argv[2])
        print("make dir",sys.argv[2])

    output_path = os.path.abspath(sys.argv[2])

    for item in file_list:
        #subprocessで変換拡張子なしのファイル名も取得しておく
        basename_without_ext = os.path.splitext(os.path.basename(item))[0]
        #今回はflvを16,000HZのwavに変換
        cmd = "ffmpeg -i "+item+" -ar 16000 "+output_path+"/"+basename_without_ext+".wav"
        runcmd = subprocess.call(cmd.split())
  • サンプルコードとかはgithubに載せときます.あとはいい感じでよろしく
1
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
9