Python實(shí)現(xiàn)視頻剪輯的示例詳解
實(shí)現(xiàn)目標(biāo)
因上傳某盤(pán)等文件大小限制,無(wú)法上傳視頻,故需要對(duì)視頻進(jìn)行壓縮
參考資料
ffmpeg文檔參考: https://ffmpeg.org/ffmpeg.html
依賴(lài)條件
已經(jīng)安裝好python3.11 ,原則上更高版本也可以
安裝 ffmpeg 依賴(lài) 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)和用戶(hù)體驗(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)文章
Keras多線程機(jī)制與flask多線程沖突的解決方案
這篇文章主要介紹了Keras多線程機(jī)制與flask多線程沖突的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Pytorch的torch.utils.data中Dataset以及DataLoader示例詳解
torch.utils.data?是?PyTorch?提供的一個(gè)模塊,用于處理和加載數(shù)據(jù),該模塊提供了一系列工具類(lèi)和函數(shù),用于創(chuàng)建、操作和批量加載數(shù)據(jù)集,這篇文章主要介紹了Pytorch的torch.utils.data中Dataset以及DataLoader等詳解,需要的朋友可以參考下2023-08-08一小時(shí)學(xué)會(huì)TensorFlow2之基本操作2實(shí)例代碼
這篇文章主要介紹了TensorFlow2的基本操作和實(shí)例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Python中單線程、多線程和多進(jìn)程的效率對(duì)比實(shí)驗(yàn)實(shí)例
這篇文章主要介紹了Python單線程多線程和多進(jìn)程效率對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05pyinstaller打包成無(wú)控制臺(tái)程序時(shí)運(yùn)行出錯(cuò)(與popen沖突的解決方法)
這篇文章主要介紹了pyinstaller打包成無(wú)控制臺(tái)程序時(shí)運(yùn)行出錯(cuò)(與popen沖突的解決方法),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04