本教程教你如何利用开源工具ffmpeg来操作你的视频文件,包括抽取音频,视频,以及画面。
1. 安装ffmpeg教程参考网上。
第一种:是安装在windows系统中,下载解压配置环境变量即可。
第二种:是通过anaconda安装在 conda环境下
anaconda 安装ffmpeg
conda install -c https://conda.anaconda.org/menpo ffmpeg
conda install ffmpy3
或者pip install ffmpy3 然后使用的时候 from ffmpy3 import FFmpeg 即可。
2. 视频抽取音频:
第一种: ffmpeg -i tensorflow4_datastructrue.mp4 -vn -f wav -ar 16000 -ac 1 out2.wav
ffmpeg -i tensorflow4_datastructrue.mp4 -vn -ar 16k -ac 1 -acodec copy aaa1.wav
-ar 设定采样率
ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac
-vn : is no video.
-acodec copy : says use the same audio stream that's already in there.
-ac: 设定声音channel数
第二种: -ar 是设置采样率
# -*- coding:utf-8 -*-
import subprocess
import os
import sys
# Pre... 将视频文件转换成音频文件
from_path = "E:jobworksdatavideoensorflow4_datastructrue.mp4"
to_path = "E:jobworksdatavideoensorflow4_datastructrue_new.wav"
# Read the text file
# 执行命令: ffmpeg -i tensorflow4_datastructrue.mp4 -vn -ar 16k -ac 1 -acodec copy aaa1.wav
subprocess.call(
['ffmpeg', '-i', from_path,'-vn','-ar','16k','-ac','1','-f','wav', to_path])
print('file %s saved' % to_path)
3. 其他处理视频的命令
# 获取video/vvvv.mp4的视频时间
ffmpeg -i video/vvvv.mp4 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//
# 生成缩略图, 其中out%d.png 表示生成多张图片%d表示占位符
ffmpeg -i video/vvvv.mp4 -f image2 -vf fps=fps=1 out%d.png
# 生成10*10的缩略图 fps=fps=1 表示每一帧抓取一次 -y 表示同意覆盖
ffmpeg -i video/vvvv.mp4 -y -f image2 -vf "fps=fps=1,scale=180*75,tile=10x10" out%d.png
# 切TS流 video/playlist.m3u8 video/cat_output%03d.ts ts流的存储路径,他们要在同一个文件夹下 $ ffmpeg -i video/vvvv.mp4 -c copy -map 0 -y -f segment -segment_list video/playlist.m3u8 -segment_time 1 -bsf:v h264_mp4toannexb video/cat_output%03d.ts