ffmpeg提取视频文件音频流和视频流

       下面代码主要实现利用python调用FFmpeg来实现对视频文件中的音频流和视频流的批量提取和保存,以及视频格式的转换。

实现环境为Ubuntu环境下 python3.6.5。

# coding=UTF-8
import os, sys
import subprocess
from scipy.io import wavfile

def ffmpeg_VideoToAudio(VideoPath):
    files = os.listdir(VideoPath)
    # files_list存放的为所有视频文件的文件名+路径
    files_list = [VideoPath + f for f in files if f.endswith(('.avi','.mp4'))]
    for file in files_list:
        wavName=os.path.splitext(file)[0]
        wavNameNew=wavName+'_Changed'
        # 提取视频中的音频信息
        strcmd="ffmpeg -i " + file + " -f wav " + wavNameNew + ".wav"+ " -y"
        subprocess.call(strcmd,shell=True)
        # 提取视频中的视频信息
        strcmd2="ffmpeg -i " + file + " -vcodec copy -an -r 25 " + wavNameNew + ".avi"+ " -y"
        subprocess.call(strcmd2,shell=True)

VideoPath='./'
ffmpeg_VideoToAudio(VideoPath)

    在Ubuntu环境下,也可以直接使用下面代码直接提取视频流中的音频信息。

ffmpeg -i 你的视频文件名 -f wav 你要保存的文件名.wav -y

若要直接提取视频流中的视频信息,则可以:

ffmpeg -i 你的视频文件名 -vcodec copy -an -r 你要保存的帧率 你要保存的文件名 -y

 如有问题请指出。

你可能感兴趣的:(python编程)