第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MoviePy 較小的剪輯拆分在連接文件、不匹配的音頻、編碼時導致故障

MoviePy 較小的剪輯拆分在連接文件、不匹配的音頻、編碼時導致故障

陪伴而非守候 2023-03-22 16:23:34
我的代碼如下。斷路器文件:from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclipsplits = [[1, 2], [5, 6], [7, 10]]for i, split in enumerate(splits):  start, end = split  ffmpeg_extract_subclip("video.m4v", start, end, targetname="clips/{0}.mp4".format(i))此斷路器代碼有效并成功地將剪輯分成適當?shù)拈L度。打開它們時,出現(xiàn)如下錯誤:在 VLC 中打開子剪輯時出現(xiàn)撕裂問題(示例)與正在觀看的實際長度相比,視頻長度不正確例如在維加斯,每個子剪輯的音頻都比視頻短當試圖將這些視頻連接成一個更大的視頻(下面的代碼)時,當剪輯被加入時,“過渡”會在播放新剪輯之前重復上一個視頻的最后幾分鐘幾秒鐘串聯(lián)代碼:from moviepy.editor import *clips = []for i in range(1, 3):  clips.append(VideoFileClip("{0}.mp4".format(i)))concat = concatenate_videoclips(clips)concat.write_videofile("output.mp4")這也有效,但在打開時我收到上面第 (4) 點中寫的錯誤。額外的信息:我使用了同一視頻的兩個原始版本,一個是原始視頻 (2.42gb),另一個是我運行 Handbrake 編碼以確保這不是問題所在的版本。我也對輸出進行了編碼,以防出現(xiàn)問題(再次使用 Handbrake)并且問題保持不變。昨天運行這兩個代碼時這不是問題,從那以后我所做的唯一操作是嘗試重新安裝 MoviePy( - pip uninstall moviepy> pip install moviepy==1.0.1,我目前使用的是版本1.0.3- 如果默認設置中缺少某些東西安裝 Python,請告訴我)這個問題與語法錯誤無關(guān),我已經(jīng)解釋了代碼以使其更易于閱讀這是 Vegas 單獨查看這些文件的屏幕截圖(我沒有剪切它們,這只是我將它們直接粘貼到 Vegas 中):
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經(jīng)驗 獲得超5個贊

故障是因為您可能沒有指定時間戳的關(guān)鍵幀。因為非關(guān)鍵幀編碼與最近關(guān)鍵幀的差異,它們只顯示與前一個關(guān)鍵幀的差異,這就是為什么它們非常有效的內(nèi)存,但不一致。類似的理論也適用于音頻,并且取決于編解碼器/格式!

在核心 moviePY 也使用 ffmpeg 工具,這里是 API 參考的官方頁面,以及底層細節(jié), https://zulko.github.io/moviepy/_modules/moviepy/video/io/ffmpeg_tools.html

使用 mp4 容器可以在非關(guān)鍵幀處剪切而無需使用編輯列表重新編碼(關(guān)于編輯列表的問題)。換句話說,如果 3 秒之前最接近的關(guān)鍵幀在 0 秒,那么它將從 0 秒開始復制視頻,并使用編輯列表告訴播放器不是在 3 秒而是在 0 秒開始播放,因為它最近的關(guān)鍵幀休息幀被丟棄. 這就是有時音頻播放和視頻圖像掛起但時間線繼續(xù)運行的原因。

你做了什么,它不會重新編碼原始的東西!它只是在最近的關(guān)鍵幀處拆分到您指定的開始/結(jié)束時間,并且它們的間隔不相等,因此最終結(jié)果的長度不等。

不要這樣做: 盡管這是最快和最好的 ffmpeg 方式,但我已經(jīng)弄明白了,這就是我假設你的方法正在做的事情:

ffmpeg -ss 00:01:00 -i input.mp4 -to 00:02:00 -c copy output.mp4

但下面的東西會剪切并重新編碼:

ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4

重新編碼時,您可能還希望包含其他編解碼器選項,然后使用此 ::

ffmpeg -ss 00:03:00 -t 00:00:05 -i test.wmv -acodec libmp3lame -vcodec libx264 1.mp4

但是斯瓦米有什么區(qū)別呢?

我們沒有使用 -c 復制參數(shù)。因此不只是轉(zhuǎn)儲原始 I/O 流。但再次重新編碼,需要更多的 CPU 工作!

此外,-t 選項指定持續(xù)時間,而不是結(jié)束時間。上面的命令(第二個代碼片段)將從 3 秒開始對 8 秒的視頻進行編碼。要從 3 秒開始到 8 秒結(jié)束,請使用 -t 5(第三個代碼片段)。

注意:如果您使用的是當前版本的 ffmpeg(我猜是 2015 年以上),您還可以在上面的命令中將 -t 替換為 -to 以在指定時間結(jié)束。


查看完整回答
反對 回復 2023-03-22
  • 1 回答
  • 0 關(guān)注
  • 290 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號