簡體   English   中英

使用Avisynth和VirtualDub堆疊3個gmp4-文件會導致顏色錯誤和文件失真

[英]Stacking 3 gmp4-files using Avisynth and VirtualDub, results in wrong colors and distorted files

我需要執行看似簡單的任務,即將3個文件彼此堆疊。 它們都是相同的:.avi容器,320x240、4:3、25 fps,GeoVision Advanced MPEG-4 GEO編解碼器。 我安裝了GeoVision編解碼器( http://www.geovision.com.tw/english/5_8.asp#-選擇“其他實用程序”),因此我的系統(Windows Media Player,Classic Media Player)可以播放文件。 另外,我可以在Virtual Dub中打開並使用它們。 我安裝了AviSynth並編寫了用於將它們彼此相鄰堆疊的簡單腳本

h1 = AVISource("Event20150423075842001.avi")

h2 = AVISource("Event20150423075842002.avi")

h3 = AVISource("Event20150423075848003.avi")

StackHorizontal(h1, h2, h3)

現在,當我將其另存為.avs,然后使用VirtualDub將其打開時,我看到三個視頻很好地並排放置,但是顏色很奇怪,視頻的一部分倒置了,一切都只是..錯誤-參見屏幕截圖http://www.linkfile.de/download-46f71057ed130f9be29510f68ce4ee71.php 首先,我認為這與使用錯誤的編解碼器的avisynth有關,因此我在gmp4上強制使用了它(您也可以在屏幕截圖中看到),但是結果是相同的。 現在,我還安裝了Avisynth +和VirtualDubMod。 當我在VDMod中打開.avs時,出現“無法找到YV24格式的解壓縮器”,但它仍會打開看起來更好的視頻(但是當我進行直接流復制並保存時,然后播放它回到MPC,它看起來與第一個屏幕截圖完全相同)。 所以這個錯誤使我指向與色彩空間有關的東西。 現在我的問題是:

  • 我如何找出文件的格式? YUV24,YUV12,..?
  • 然后,如何告訴Avisynth使用VirtualDubMod可以處理的格式?
  • 或者如何使VirtualDub與YUV24配合使用? 我是否只是缺少編解碼器? 我的思路是否正確,還是我的問題完全不同?

我還發現了這個相關的線程: 使用系統安裝的專有編解碼器編輯AVI文件/對AVI文件進行解碼 ,但是使用avisynth和ffmpeg時,得到的結果與VirtualDub相似。

我不能使用先轉換我的所有文件然后再進行第二步堆疊的解決方案-因為我要使用的實際文件大約有180個視頻,每個視頻大約需要8個小時,因此消耗的時間會被占用與我的可能性無關。

在過去的一周中,我確實一直在尋找解決方案,而且我想我已經很接近了,但是可悲的是,我對編程的了解不多,無法自己解決..因此,我也想找任何借口我的解釋很愚蠢;)非常感謝您的幫助

祝大家玩得開心

編輯:所以我還有更多信息,還有一個示例文件,我無法在本文中鏈接-.-,因為我-再次-沒有足夠的聲譽,非常好。 我將嘗試評論並發布鏈接:)

這是info()命令帶給我的東西:顏色空間:YV24,基於字段(分離)視頻:否,奇偶校驗:底場優先,視頻間距:320字節,音頻:否,檢測到的CPU:x87 MMX ISSE SSE4.1 SSSE3

我能夠重現您的問題。 顯然,AviSource默認情況下選擇了錯誤的像素格式,應為“ RGB24”而不是“ YV24”。

為了解決這個問題,您需要向每個AviSource調用添加參數pixel_type="RGB24" ,如下所示:

AVISource("Event20150423075842001.avi", pixel_type="RGB24")

另外,您可以嘗試使用DirectShowSource而不是AviSource,它對我而言立即正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM