Python實(shí)現(xiàn)視頻剪輯的示例詳解
實(shí)現(xiàn)目標(biāo)
因上傳某盤(pán)等文件大小限制,無(wú)法上傳視頻,故需要對(duì)視頻進(jìn)行壓縮
參考資料
ffmpeg文檔參考: https://ffmpeg.org/ffmpeg.html
依賴條件
已經(jīng)安裝好python3.11 ,原則上更高版本也可以
安裝 ffmpeg 依賴 pip install ffmpeg-python
實(shí)現(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()
其他問(wèn)題
選擇性截取視頻通道
以下代碼實(shí)現(xiàn)視頻剪輯,保留第一個(gè)視頻通道,第一個(gè)音頻通道,保留前三個(gè)字幕通道
python代碼暫未實(shí)現(xiàn)多個(gè)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)為單位。高動(dòng)態(tài)范圍(HDR)和高分辨率(如4K、8K)視頻通常需要更高的碼率來(lái)保持高質(zhì)量的播放體驗(yàn)。具體的碼率取決于視頻內(nèi)容的復(fù)雜性、編碼器的效率以及壓縮技術(shù)的使用等因素。一般來(lái)說(shuō),以下是一些典型的推薦碼率范圍:
高動(dòng)態(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ù)值僅供參考,實(shí)際的碼率可能會(huì)因視頻內(nèi)容、壓縮技術(shù)和編解碼器的使用而有所不同。對(duì)于在線視頻平臺(tái)和流媒體服務(wù)商來(lái)說(shuō),他們通常會(huì)根據(jù)他們的平臺(tái)和用戶體驗(yàn)的需求來(lái)選擇適當(dāng)?shù)拇a率。
到此這篇關(guān)于Python實(shí)現(xiàn)視頻剪輯的示例詳解的文章就介紹到這了,更多相關(guān)Python視頻剪輯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用format函數(shù)實(shí)現(xiàn)對(duì)齊打印(左對(duì)齊、右對(duì)齊與居中對(duì)齊)
format是字符串內(nèi)嵌的一個(gè)方法,用于格式化字符串,下面這篇文章主要給大家介紹了關(guān)于Python利用format函數(shù)實(shí)現(xiàn)對(duì)齊打印(左對(duì)齊、右對(duì)齊與居中對(duì)齊)的相關(guān)資料,需要的朋友可以參考下2022-04-04python獲取一組數(shù)據(jù)里最大值max函數(shù)用法實(shí)例
這篇文章主要介紹了python獲取一組數(shù)據(jù)里最大值max函數(shù)用法,實(shí)例分析了max函數(shù)的使用技巧,需要的朋友可以參考下2015-05-05Python的lambda匿名函數(shù)的簡(jiǎn)單介紹
Python的lambda匿名函數(shù)的簡(jiǎn)單介紹,需要的朋友可以參考一下2013-04-04Python自動(dòng)化構(gòu)建工具scons使用入門(mén)筆記
這篇文章主要介紹了Python自動(dòng)化構(gòu)建工具scons使用入門(mén)筆記,本文講解了安裝scons、scons常用命令、scons使用示例等內(nèi)容,需要的朋友可以參考下2015-03-03PyCharm軟件無(wú)法安裝lxml庫(kù)的問(wèn)題及解決
這篇文章主要介紹了PyCharm軟件無(wú)法安裝lxml庫(kù)的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01使用Pandas計(jì)算系統(tǒng)客戶名稱的相似度
在日常業(yè)務(wù)處理中,我們經(jīng)常會(huì)面臨將不同系統(tǒng)中的數(shù)據(jù)進(jìn)行匹配和比對(duì)的情況,本文將介紹如何使用Python的Pandas庫(kù)來(lái)處理這個(gè)問(wèn)題,需要的可以參考一下2023-07-07淺談tensorflow中幾個(gè)隨機(jī)函數(shù)的用法
今天小編就為大家分享一篇淺談tensorflow中幾個(gè)隨機(jī)函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Django Admin 實(shí)現(xiàn)外鍵過(guò)濾的方法
下面小編就為大家?guī)?lái)一篇Django Admin 實(shí)現(xiàn)外鍵過(guò)濾的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09