【數據分析day05】ffmpeg操作

簡介

  • FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。

  • 流文件(可在線拉進度)

  • ffmpeg需要下載,並解壓將3個文件放至Python安裝目錄中的bin目錄下,然後還要配置環境變量
    在這裏插入圖片描述

  • 官網下載
    在這裏插入圖片描述

  • 下載安裝可參考:

    https://www.cnblogs.com/Neeo/articles/11677715.html

  • 騷操作可參考:

    https://www.jianshu.com/p/93d08fe43dff

從視頻中提取音頻

  • 在終端下直接執行: “ffmpeg -i test.mp4 -f mp3 -vn test.mp3”,將"test.MP4"文件中的音頻文件提取出來

在這裏插入圖片描述

  • 在代碼中操作,需要先導包:import subprocess

下面代碼等同於在上面的終端操作:

1、 os.system() #可執行系統命令
or
2、 subprocess.call()

	subprocess.call('ffmpeg -i ../data/1.mp4 -f mp3 -vn 2.mp3')

在這裏插入圖片描述
輸出爲0表示操作成功

視頻截取

-ss表示開始位置,-t表示結束位置

subprocess.call('ffmpeg -ss 00:00:10 -i ../data/law.mp4 -acodec copy -vcodec copy -t 00:00:40 output.mp4')

從視頻中提取無聲視頻

subprocess.call('ffmpeg -i ../data/1.mp4 -vcodec copy -an 2.mp4')

合併視頻和音頻

慢,消耗性能

subprocess.call('ffmpeg -i 2.mp3  -i 2.mp4 out.mp4')

擴展

mp3數據

  • 使用pydub+ ffmpeg處理mp3文件,參考上一篇

mp4數據

import numpy as np

import cv2

cap = cv2.VideoCapture('./law.mp4')


while(cap.isOpened()):

	ret, frame = cap.read()

	try :

    	gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

	except Exception as e:

    	print(e)

    	break

	cv2.imshow('frame',gray)

 	if cv2.waitKey(1) &0xFF == ord('q'):

    	break

cap.release()


cv2.destroyAllWindows()

看到一篇有意思的關於cv2.VideoCapture()操作的文章:《python - 截取指定幀數間隔的視頻,並保存圖片到指定位置》
https://blog.csdn.net/qq_38214193/article/details/80997924

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章