Python實現(xiàn)視頻剪輯的示例詳解
實現(xiàn)目標(biāo)
因上傳某盤等文件大小限制,無法上傳視頻,故需要對視頻進(jìn)行壓縮
參考資料
ffmpeg文檔參考: https://ffmpeg.org/ffmpeg.html
依賴條件
已經(jīng)安裝好python3.11 ,原則上更高版本也可以
安裝 ffmpeg 依賴 pip install ffmpeg-python
實現(xiàn)代碼
主代碼
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024-04-15 13:29
# @Author : Jack
"""
pip install ffmpeg-python
"""
import ffmpeg
def cut_video(video_path=r'F:\11\5.mkv'):
video_path = video_path.replace('\\', '/')
output_file = f"{video_path.rsplit('/', 1)[0]}/output.mkv"
start_time = '00:00:00'
end_time = '00:52:10'
input_stream = ffmpeg.input(video_path, ss=start_time)
output_stream = ffmpeg.output(input_stream, output_file, to=end_time)
ffmpeg.run(output_stream)
print('視頻分割完成')
if __name__ == '__main__':
cut_video()其他問題
選擇性截取視頻通道
以下代碼實現(xiàn)視頻剪輯,保留第一個視頻通道,第一個音頻通道,保留前三個字幕通道
python代碼暫未實現(xiàn)多個map的映射關(guān)系
# 正確的命令行 ffmpeg -i 5.mkv -ss 00:00:00 -to 00:01:00 -map 0:v:0 -map 0:a:0 -map 0:s -c:v copy -c:a:0 copy -c:s copy output.mkv ffmpeg -i 5.mkv -ss 00:00:00 -to 00:01:00 -map 0:v:0 -map 0:a:0 -map 0:s:0 -map 0:s:1 -map 0:s:2 -c:v copy -c:a:0 copy -c:s:0 copy -c:s:1 copy -c:s:2 copy output.mkv
改變碼率
# 獲取當(dāng)前視頻碼率 ffprobe -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 5.mkv # 輸出 11873582 ==> 11,873,582/1,000,000 = 11.873582 Mbps ffmpeg -i 5.mkv -b:v 10M output.mkv
視頻碼率介紹
碼率:碼率是視頻或音頻的傳輸速度,單位是比特/秒(bps),通常以千比特/秒(kbps)為單位。高動態(tài)范圍(HDR)和高分辨率(如4K、8K)視頻通常需要更高的碼率來保持高質(zhì)量的播放體驗。具體的碼率取決于視頻內(nèi)容的復(fù)雜性、編碼器的效率以及壓縮技術(shù)的使用等因素。一般來說,以下是一些典型的推薦碼率范圍:
高動態(tài)范圍(HDR)視頻:
- 1080p HDR視頻:通常在15-25 Mbps之間。
- 4K HDR視頻:通常在25-45 Mbps之間。
- 8K HDR視頻:通常在50 Mbps以上。
高分辨率視頻:
- 4K視頻:通常在20-45 Mbps之間,具體取決于幀率和內(nèi)容復(fù)雜性。
- 8K視頻:通常在50-100 Mbps之間,具體取決于幀率和內(nèi)容復(fù)雜性。
這些數(shù)值僅供參考,實際的碼率可能會因視頻內(nèi)容、壓縮技術(shù)和編解碼器的使用而有所不同。對于在線視頻平臺和流媒體服務(wù)商來說,他們通常會根據(jù)他們的平臺和用戶體驗的需求來選擇適當(dāng)?shù)拇a率。
到此這篇關(guān)于Python實現(xiàn)視頻剪輯的示例詳解的文章就介紹到這了,更多相關(guān)Python視頻剪輯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用format函數(shù)實現(xiàn)對齊打印(左對齊、右對齊與居中對齊)
format是字符串內(nèi)嵌的一個方法,用于格式化字符串,下面這篇文章主要給大家介紹了關(guān)于Python利用format函數(shù)實現(xiàn)對齊打印(左對齊、右對齊與居中對齊)的相關(guān)資料,需要的朋友可以參考下2022-04-04
python獲取一組數(shù)據(jù)里最大值max函數(shù)用法實例
這篇文章主要介紹了python獲取一組數(shù)據(jù)里最大值max函數(shù)用法,實例分析了max函數(shù)的使用技巧,需要的朋友可以參考下2015-05-05

