国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python --moviepy合成視頻加轉(zhuǎn)場(chǎng)效果(淡入淡出),FFmepg

這篇具有很好參考價(jià)值的文章主要介紹了python --moviepy合成視頻加轉(zhuǎn)場(chǎng)效果(淡入淡出),FFmepg。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

自己實(shí)現(xiàn)

from moviepy.editor import *


# 輸入 1.mp4 和 2.mp4,返回他們拼接的成品(帶疊化效果)
def diehua(file_1, file_2):
    clip_1 = VideoFileClip(file_1)
    clip_2 = VideoFileClip(file_2)
    # 將這兩個(gè)視頻分成3部分,第一部分為純 1.mp4 的部分,第二部分為 1.mp4 和 2.mp4 疊加的部分,第三部分為純 2.mp4 的部分
    magic_time = 0.5  # 設(shè)置疊化轉(zhuǎn)場(chǎng)時(shí)長(zhǎng)
    duration_video1 = clip_1.duration  # 片段1時(shí)長(zhǎng)
    duration_video2 = clip_2.duration  # 片段2時(shí)長(zhǎng)

    part1 = clip_1.subclip(0, duration_video1 - magic_time)  # 片段1截取
    part3 = clip_2.subclip(magic_time, duration_video2)  # 片段2截取

    part2_1 = clip_1.subclip(duration_video1 - magic_time, duration_video1)  # 片段1的最后0.5秒
    part2_2 = clip_2.subclip(0, magic_time)  # 片段2的開始0.5秒

    # 將第二部分(1.mp4和2.mp4疊加的部分)分成10份,每份時(shí)長(zhǎng)盡量保持一致,超過10份會(huì)明顯卡頓一下,未探究原因
    part2_1_1 = part2_1.subclip(0, 0.05)
    part2_1_2 = part2_1.subclip(0.05, 0.1)
    part2_1_3 = part2_1.subclip(0.10, 0.15)
    part2_1_4 = part2_1.subclip(0.15, 0.2)
    part2_1_5 = part2_1.subclip(0.2, 0.25)
    part2_1_6 = part2_1.subclip(0.25, 0.3)
    part2_1_7 = part2_1.subclip(0.3, 0.35)
    part2_1_8 = part2_1.subclip(0.35, 0.4)
    part2_1_9 = part2_1.subclip(0.4, 0.45)
    part2_1_10 = part2_1.subclip(0.45, 0.5)

    part2_2_1 = part2_2.subclip(0, 0.05)
    part2_2_2 = part2_2.subclip(0.05, 0.1)
    part2_2_3 = part2_2.subclip(0.1, 0.15)
    part2_2_4 = part2_2.subclip(0.15, 0.2)
    part2_2_5 = part2_2.subclip(0.2, 0.25)
    part2_2_6 = part2_2.subclip(0.25, 0.3)
    part2_2_7 = part2_2.subclip(0.3, 0.35)
    part2_2_8 = part2_2.subclip(0.35, 0.4)
    part2_2_9 = part2_2.subclip(0.4, 0.45)
    part2_2_10 = part2_2.subclip(0.45, 0.5)

    # 將 part2_1 和 part2_2 疊加視頻合成 part2,2個(gè)部分通過控制不同時(shí)間不同透明度完成疊化效果
    # 其中第二個(gè)參數(shù)處于上面一層,通過把前面的片段放在上面一層,再逐漸降低他的不透明度(就是讓前面的片段慢慢變透明),來讓下面一層的后面的片段慢慢浮現(xiàn)出來,產(chǎn)生片段疊加效果
    F_part2_1 = CompositeVideoClip([part2_2_1, part2_1_1.set_opacity(0.95)])
    F_part2_2 = CompositeVideoClip([part2_2_2, part2_1_2.set_opacity(0.85)])
    F_part2_3 = CompositeVideoClip([part2_2_3, part2_1_3.set_opacity(0.75)])
    F_part2_4 = CompositeVideoClip([part2_2_4, part2_1_4.set_opacity(0.65)])
    F_part2_5 = CompositeVideoClip([part2_2_5, part2_1_5.set_opacity(0.55)])
    F_part2_6 = CompositeVideoClip([part2_2_6, part2_1_6.set_opacity(0.45)])
    F_part2_7 = CompositeVideoClip([part2_2_7, part2_1_7.set_opacity(0.35)])
    F_part2_8 = CompositeVideoClip([part2_2_8, part2_1_8.set_opacity(0.25)])
    F_part2_9 = CompositeVideoClip([part2_2_9, part2_1_9.set_opacity(0.15)])
    F_part2_10 = CompositeVideoClip([part2_2_10, part2_1_10.set_opacity(0.05)])

    # 拼接視頻片段
    video1 = concatenate_videoclips(
        [F_part2_1, F_part2_2, F_part2_3, F_part2_4, F_part2_5, F_part2_6, F_part2_7, F_part2_8, F_part2_9, F_part2_10])
    # 拼接視頻片段
    video2 = concatenate_videoclips([part1, video1, part3])
    video2.write_videofile('8.mp4')

diehua(r'12.mp4', '13.mp4')

moviepy實(shí)現(xiàn)

示例一:

from moviepy.editor import *

clip = VideoFileClip(r"F:\video\fansNote1M_crop.mp4")
clipColorx = clip.fx(vfx.fadein,15)
clipColorx.write_videofile (r"F:\video\fansNote1M_fadein.mp4")

上述四行代碼實(shí)現(xiàn)Moviepy模塊的加載、然后讀入視頻文件、對(duì)視頻前15秒進(jìn)行淡入處理、輸出調(diào)整后視頻到結(jié)果視頻文件。以上四行代碼也可以精簡(jiǎn)為如下兩行:

from moviepy.editor import *

VideoFileClip(r"F:\video\fansNote1M_crop.mp4").fx(vfx.fadein,15).write_videofile (r"F:\video\fansNote1M_fadein.mp4")

淡出處理類似,只要把函數(shù)fadein改成fadeout,并調(diào)整時(shí)間參數(shù)即可。

MoviePy是一個(gè)用于視頻編輯的Python模塊,可用于進(jìn)行視頻的基本操作(如剪切、連接、標(biāo)題插入)、視頻合成(也稱非線性編輯)、視頻處理或創(chuàng)建高級(jí)效果。它可以讀寫最常見的視頻格式,包括GIF。MoviePy能處理的視頻是ffmpeg格式的,理解支持的文件類型至少包括:*.mp4 *.wmv *.rm *.avi *.flv *.webm *.wav *rmvb。

MoviePy使用ffmpeg讀取、導(dǎo)出視頻和音頻文件,使用ImageMagick生成文本和輸出GIF文件。Python的快速數(shù)字庫(kù)Numpy保證了不同媒體的處理。高級(jí)效果和增強(qiáng)使用了Python的許多圖像處理庫(kù)(PIL、Scikit-image、scipy等)。

moviepy的核心對(duì)象是剪輯(clips),包括AudioClips 和VideoClips。它們可以修改(剪切、減速、變暗…)或與剪輯混合以形成新剪輯,可以使用PyGame或IPython Notebook預(yù)覽,并可以輸出到對(duì)應(yīng)類型的文件(如MP4、GIF、 MP3等)。例如,VideoClips可以從視頻文件、圖像、文本或自定義動(dòng)畫創(chuàng)建。VideoClips可以有一個(gè)音頻軌道(這是一個(gè)AudioClip)和一個(gè)mask(一個(gè)特殊的VideoClip,指示當(dāng)剪輯與其他剪輯混合時(shí)要隱藏哪些部分)。

上述代碼涉及到的相關(guān)函數(shù)包括VideoFileClip、fx、fadein、write_videofile,其中:

VideoFileClip實(shí)際上是一個(gè)類,用于從視頻文件裝載視頻到內(nèi)存

fx函數(shù)是Moviepy剪輯基類Clip的方法,fx方法是用于執(zhí)行參數(shù)指定的函數(shù),并返回該參數(shù)對(duì)應(yīng)函數(shù)的執(zhí)行結(jié)果

fadein用于調(diào)整剪輯的淡入,對(duì)應(yīng)的要進(jìn)行淡出處理使用fadeout,注意時(shí)間參數(shù)t的含義是淡入處理是從開頭到t時(shí)刻的視頻進(jìn)行淡入處理,淡出是從t時(shí)刻開始到結(jié)尾進(jìn)行淡出處理

write_videofile用于將剪輯內(nèi)容輸出到視頻文件

示例二:

import moviepy.editor as mp

# 定義視頻淡入淡出效果的時(shí)長(zhǎng)
fade_duration = 1

# 加載需要合并的視頻片段
clip1 = mp.VideoFileClip("video1.mp4").fadein(fade_duration).crossfadein(fade_duration)
clip2 = mp.VideoFileClip("video2.mp4").fadein(fade_duration).crossfadein(fade_duration)
clip3 = mp.VideoFileClip("video3.mp4").fadein(fade_duration).crossfadein(fade_duration)

# 合并視頻片段
final_clip = mp.concatenate_videoclips([clip1, clip2, clip3])

# 保存合并后的視頻
final_clip.write_videofile("final_video.mp4")
```

以上代碼使用了moviepy庫(kù),先定義了淡入淡出效果的時(shí)長(zhǎng),然后通過VideoFileClip加載需要合并的視頻片段。對(duì)于每個(gè)視頻片段,使用fadein方法和crossfadein方法增加淡入淡出效果。通過concatenate_videoclips方法將所有視頻片段合并起來,最后使用write_videofile方法保存合并后的視頻。

FFmpeg

以下是使用 Python 和 FFmpeg 合并視頻并添加淡入淡出效果的代碼示例:

示例一:

import subprocess

# 定義視頻文件路徑
input_files = ["video1.mp4", "video2.mp4", "video3.mp4", "video4.mp4"]

# 定義輸出文件名
output_file = "merged_video.mp4"

# 定義淡入淡出時(shí)長(zhǎng)(秒)
fade_duration = 1

# 使用 subprocess 調(diào)用 FFmpeg 命令進(jìn)行合并和轉(zhuǎn)換
command = (
f"ffmpeg -y " # 覆蓋同名輸出文件
f"-i concat:{'|'.join(input_files)} " # 拼接輸入文件
f"-filter_complex " # 加入過渡效果
# 第一個(gè)輸入視頻不加淡入效果
f"[0:v]fade=out:st={int(fade_duration)}:d={int(fade_duration)},fade=in:st=0:d={int(fade_duration)}[v0]; "
# 中間輸入視頻添加淡入淡出效果
f"{';'.join([f"[{i}:v]fade=out:st={int(fade_duration)}:d={int(fade_duration)},"
f"fade=in:st=0:d={int(fade_duration)}[v{i}]" for i in range(1, len(input_files) - 1)])}; "
# 最后一個(gè)輸入視頻不加淡出效果
f"[{len(input_files) - 1}:v]fade=out:st={int(fade_duration)}:d={int(fade_duration)}[v{len(input_files) - 1}]; "
# 串聯(lián)各視頻的效果處理結(jié)果
f"[v0]"
f"{';'.join([f"[v{i}]concat=n=1:v=0:a=1[v{i + 1}]" for i in range(len(input_files) - 1)])} "
f"-map [v{len(input_files)}] -map 0:a " # 僅輸出視頻流和第一個(gè)輸入文件的音頻流
f"-c:v libx264 -preset veryfast -crf 18 " # 視頻編碼參數(shù)
f"-c:a copy {output_file}" # 音頻不用轉(zhuǎn)換,直接拷貝
)
subprocess.call(command, shell=True)

這個(gè)代碼使用 FFmpeg 對(duì)多個(gè)視頻進(jìn)行拼接,并且在視頻之間添加淡入淡出效果,最后生成一個(gè)新的視頻文件。你可以根據(jù)實(shí)際需求修改上述代碼中的視頻文件路徑、輸出文件名和淡入淡出時(shí)長(zhǎng)等參數(shù)。

示例二:

ffmpeg \
-i video1.mp4 \
-i video2.mp4 \
-i video3.mp4 \
-filter_complex \
"[0:v]fade=in:st=0:d=1:alpha=1,fade=out:st=8:d=1:alpha=1[fade1]; \
[1:v]fade=in:st=0:d=1:alpha=1,fade=out:st=8:d=1:alpha=1[fade2]; \
[2:v]fade=in:st=0:d=1:alpha=1,fade=out:st=8:d=1:alpha=1[fade3]; \
[fade1][1:v]overlay=shortest=1[over1]; \
[over1][fade2][2:v]overlay=shortest=1[over2]" \
-c:v libx264 -crf 18 -preset veryfast -y final_video.mp4

以上代碼使用了FFmpeg,先指定需要合并的視頻文件,然后通過filter_complex參數(shù)定義每個(gè)視頻片段的淡入淡出效果。每個(gè)視頻片段使用fade濾鏡增加淡入淡出效果,overlay濾鏡實(shí)現(xiàn)視頻片段的切換。在overlay濾鏡中指定shortest=1參數(shù),可以確保所有視頻片段的長(zhǎng)度相等。

最后,通過-c:v libx264 -crf 18 -preset veryfast -y參數(shù)指定輸出視頻的編碼格式、畫質(zhì)、壓縮速度和覆蓋文件等信息。執(zhí)行以上命令后,輸出合并后的視頻文件final_video.mp4。

示例三

ffmpeg \
-i video1.mp4 \
-i video2.mp4 \
-i video3.mp4 \
-filter_complex \
"[0:v]fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=8:d=1:alpha=1[v1]; \
[1:v]fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=8:d=1:alpha=1[v2]; \
[2:v]fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=8:d=1:alpha=1[v3]; \
[v1][v2][v3]concat=n=3:v=1:a=0,fade=t=out:st=28:d=1:alpha=1[v]" \
-map "[v]" -c:v libx264 -crf 18 -preset veryfast -y final_video.mp4

以上代碼同樣使用了FFmpeg,使用filter_complex參數(shù)定義每個(gè)視頻片段的淡入淡出效果。每個(gè)視頻片段同樣使用fade濾鏡增加淡入淡出效果,使用concat濾鏡將多個(gè)視頻片段合并為一個(gè),并在最后一個(gè)片段處增加一個(gè)淡出效果。

最后,通過-map參數(shù)指定合并后的視頻流,并通過-c:v libx264 -crf 18 -preset veryfast -y參數(shù)指定輸出視頻的編碼格式、畫質(zhì)、壓縮速度和覆蓋文件等信息。執(zhí)行以上命令后,輸出合并后的視頻文件final_video.mp4。文章來源地址http://www.zghlxwxcb.cn/news/detail-431294.html

到了這里,關(guān)于python --moviepy合成視頻加轉(zhuǎn)場(chǎng)效果(淡入淡出),FFmepg的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • libgdx實(shí)現(xiàn)淡入淡出過渡

    libgdx實(shí)現(xiàn)淡入淡出過渡

    libgdx實(shí)現(xiàn)淡入淡出過渡,環(huán)境 jdk17+ 、 libgdx 1.12.0 2023年11月1日11:02:50最新

    2024年02月06日
    瀏覽(21)
  • 干貨 | 移動(dòng)端使用OpenGL轉(zhuǎn)場(chǎng)特效的音視頻合成應(yīng)用

    干貨 | 移動(dòng)端使用OpenGL轉(zhuǎn)場(chǎng)特效的音視頻合成應(yīng)用

    作者簡(jiǎn)介 jzg,攜程資深前端開發(fā)工程師,專注Android開發(fā); zx,攜程高級(jí)前端開發(fā)工程師,專注iOS開發(fā); zcc,攜程資深前端開發(fā)工程師,專注iOS開發(fā)。 前言 近年來短視頻的火爆,讓內(nèi)容創(chuàng)作類的APP獲得了巨大的流量。用戶通過這類工具編輯自己的短視頻,添加各式各樣的炫

    2024年02月04日
    瀏覽(27)
  • unity實(shí)現(xiàn)UI文字和圖片淡入淡出

    using UnityEngine; using UnityEngine.UI; public class CrossFadeAlphaTest : MonoBehaviour { ? ? Graphic graphicText; ? ? Graphic graphicImage; ? ? public Text ?text01;//文字 ? ? public Image image1;//圖片 ? ? void Start() ? ? { ? ? ? ? graphicText = text01.GetComponentGraphic(); ? ? ? ? graphicImage = image1.GetComponentGraphic(); ? ?

    2024年04月16日
    瀏覽(16)
  • UE4 使用控件藍(lán)圖的動(dòng)畫功能實(shí)現(xiàn)UI的淡入淡出

    UE4 使用控件藍(lán)圖的動(dòng)畫功能實(shí)現(xiàn)UI的淡入淡出

    效果: 步驟: 首先PS一張背景純黑,邊緣有羽化效果的圖片: 新建一個(gè)控件藍(lán)圖,創(chuàng)建一個(gè)圖像和按鈕控件,控件的初始位置如下所示,設(shè)置圖像一開始為完全透明 新建兩個(gè)動(dòng)畫,分別命名為“向左移動(dòng)”和“向右移動(dòng)” 在時(shí)間軸上添加對(duì)按鈕和圖像的控制 按鈕主要是對(duì)

    2024年02月17日
    瀏覽(47)
  • moviepy,一個(gè)超酷的 Python 視頻處理庫(kù)!

    moviepy,一個(gè)超酷的 Python 視頻處理庫(kù)!

    前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站零基礎(chǔ)入門的AI學(xué)習(xí)網(wǎng)站~。 大家好,今天為大家分享一個(gè)超酷的 Python 庫(kù) - moviepy。 Github地址:https://github.com/Zulko/moviepy 在今天的數(shù)字時(shí)代,視頻內(nèi)容變得越來越流行

    2024年02月20日
    瀏覽(19)
  • Python - GFPGAN + MoviePy 提高人物視頻畫質(zhì)

    Python - GFPGAN + MoviePy 提高人物視頻畫質(zhì)

    目錄 一.引言 二.gif_to_png 三.gfp_gan 四.png_to_gif 五.總結(jié) 前面我們介紹了?GFP-GAN 提高人臉質(zhì)量?與?OCR 提取視頻臺(tái)詞、字幕,前者可以提高圖像質(zhì)量,后者可以從視頻中抽幀,于是博主便想到了將二者進(jìn)行結(jié)合并優(yōu)化人物 GIF 圖像質(zhì)量。其步驟如下: ◆ ?MoviePy 截取視頻關(guān)鍵幀

    2024年04月25日
    瀏覽(19)
  • python moviepy 自動(dòng)化音視頻處理實(shí)踐

    MoviePy是一個(gè)用于視頻編輯的Python庫(kù)。它提供了一種簡(jiǎn)單且直觀的方式來處理視頻文件,包括剪輯、合并、裁剪、添加文本、添加音頻等操作。使用MoviePy,你可以通過編寫Python代碼來創(chuàng)建和編輯視頻,而無需使用復(fù)雜的視頻編輯軟件。 MoviePy建立在另一個(gè)庫(kù)Pygame和軟件MoviePy

    2024年02月14日
    瀏覽(28)
  • python+moviepy音視頻處理(一):基本操作

    python+moviepy音視頻處理(一):基本操作

    目錄 視頻處理 視頻加載和輸出 視頻轉(zhuǎn)換gif 視頻裁剪 視頻音量調(diào)節(jié) 去掉視頻聲音 視頻中的音頻提取與替換 獲取視頻屬性 倍數(shù)播放視頻 截取視頻某幀為封面 多視頻拼接 音頻處理 替換視頻文件的音頻 多個(gè)音頻文件拼接 安裝:pip install moviepy 中文官網(wǎng):moviepy-cn 文檔 \\\'\\\'\\\' movie

    2023年04月23日
    瀏覽(23)
  • python+moviepy音視頻處理(二):視頻添加文字(字幕)、視頻添加漢字不顯示問題

    目錄 添加文字報(bào)錯(cuò)處理 中文不顯示處理 代碼實(shí)例 給視頻添加滾動(dòng)文字(一) 給視頻添加滾動(dòng)文字(二) 報(bào)錯(cuò)內(nèi)容 :OSError: MoviePy Error: creation of None failed because of the following error: [WinError 2] 系統(tǒng)找不到指定的文件。. .This error can be due to the fact that ImageMagick is not installed on your comput

    2024年02月09日
    瀏覽(44)
  • 當(dāng)影像遇上Python:用MoviePy庫(kù)輕松搞定視頻編輯

    當(dāng)影像遇上Python:用MoviePy庫(kù)輕松搞定視頻編輯

    ?? MoviePy 是什么? MoviePy 是一個(gè)使用 Python 編寫的開源庫(kù),用于在視頻編輯中創(chuàng)建、編輯和操作視頻文件。它是一款強(qiáng)大且易于使用的視頻處理工具,可以方便地剪輯、裁剪、組合和調(diào)整視頻的大小和位置。 ?? MoviePy 的特點(diǎn) MoviePy 具有以下特點(diǎn): 支持多種視頻格式,包括

    2024年01月18日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包