파이썬 가젯 : 오디오로 변환 비디오 3 초

머리말

네트워크에서이 문서의 텍스트와 이미지 만 배울 수있는, 교환,하지 상업적 목적, 질문이있는 경우, 치료를 위해 문의하시기 바랍니다, 저자에 속한다.

저자 : PK 형제

PS : 필요한 파이썬 학습 자료는 작은 파트너에 추가 할 수 있다면 자신을 얻기 위해 아래 링크를 클릭

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

가져 오기 설치

빠른 설치 핍 명령.

핍 ffmpy3 설치 

우리는 os 모듈을 가져올 필요하므로 가져 오기 그냥 ffmpy3 라이브러리를 저장 비디오 및 디렉토리에 저장된 오디오에 대한 디렉토리를 읽을 수있는 열등한 필요를 설치했습니다.

수입 운영 체제
 에서 ffmpy3의 가져 오기 는 FFmpeg

오디오를 저장하는 디렉토리를 생성

우리는, 우리가이 디렉토리가 존재하지 않을 경우, 우리는 그대로 유지, 선물을 만들고, 판단을보다 지능이 될하기 위해 지정된 폴더에 저장 변환 된 오디오 파일을 넣어해야합니다.

. 1  DEF mkdir_output (output_dir)
       존재 = os.path.exists (output_dir)
 3.      IF  하지의 존재 :
 . 4          인쇄 ( ' 오디오 저장 디렉토리를 생성 ' )
 5.          os.makdirs (output_dir)     #이 디렉토리를 작성하십시오 
6.          os.chdir (output_dir를)        # 당신이 만든 폴더로 전환 
7          반환 진정한
 8      다른 :
 9          인쇄 ( ' ! 디렉토리가 이미 존재, 저장하는 것입니다 ' )
 (10)          반환 거짓을

우리는 당신이 다음 호출을 기다릴 수있을 때 저장 경로 주어진 인수로 경로를 저장합니다.

파일 형식 처리

우리는 모듈 운영 체제가 목록에 읽어 비디오의 파일 이름으로 폴더에 오디오 파일로 비디오를 변환 할 필요가있다.

. (1) 파일 경로 R & LT = " / [사용자 / brucepk / 테스트 "    #의 경로하는 변환 저장된 비디오 
2 os.chdir (파일 경로)                   #의 수정 경로 스위치 
. 3 파일명 = os.listdir (파일 경로)   # 수득 폴더에있는 모든 파일 이름

그런 다음 우리는 오디오 형식 접미사, 많은 비디오 파일 형식으로 모든 비디오 파일을 대체, 나는 기본적으로 일반적인 나열.

그림 삽입 설명 여기

지정된 디렉토리에 저장되어있는 해당 디렉토리 WAV 오디오 파일에 모든 비디오 파일을 변환합니다.

오디오 파일의 등록 정보

그냥 물론, 변화의 파일 특성을하지, 같은 파일을 읽을 수 없습니다하지, 우리는 오디오주고 그것을 변환 후 오디오 파일의 속성의는 FFmpeg 방법을 필요로 파일 확장자를 변경합니다.

1 FF = FFmpeg은 (
 2              = 입력 : {없음 changefile}
 3 개              {OUTPUTFILE 출력 = ' -vn -ar 44100 -ac 2 -ab 192 WAV -f ' }
 4              )
 (5)          인쇄 (ff.cmd)
 6          ff.run ()

효과

나는 효과를 테스트하기 위해, 테스트 디렉토리에 두 개의 비디오 파일, 당신의 전화 또는 MP4 포맷 비디오를 취하는 것이 1 점을 추가하는 듯하고, 음성을 기록, 다른 비디오 포맷은 MKV 영화입니다.

그림 삽입 설명 여기

코드를 실행 한 후, 자동으로 변환 된 오디오 파일있는 폴더 출력을 생성합니다.

그림 삽입 설명 여기

오디오 소프트웨어가 열려 지원, 당신은 명확 오디오를들을 수 있습니다.

실행 오류 처리

1, 당신은 코드를 실행하면 아래 그림과 같이, Windows 시스템,는 FFmpeg 나타납니다 같은 오류를 찾을 수 없습니다. 그림 삽입 설명 여기

이 시점에서, 우리는 FFmpeg를 다운로드 자신의 컴퓨터 버전에 따라 적절한 설치 패키지를 다운로드하려면 아래 주소를 방문해야합니다.

그림 삽입 설명 여기

는 FFmpeg은 실행 파일의 절대 경로로, ffmpeg.exe 매개 변수 아래의 실행 코드의 값을 파일 오픈 ffmpy3.py 파일의 압축을 풉니 다 (Ctrl 키를 누른 상태에서 신속하게 ffmpy3을 클릭 모듈로 이동).

__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 -ab 192 WAV -f ' }
 36             )
 (37) 인쇄 (ff.cmd)
 38          ff.run ()          

 

추천

출처www.cnblogs.com/Qqun821460695/p/11971703.html