REKLAMA


Kompresja x264 za pomocą VirtualDub

aktualizacja: 9.04.2014

vdub-logoNa początek odpowiedzmy sobie na pytanie, po co w ogóle do kompresji x264 używać takiego programu jak VirtualDub. Program został stworzonego do obróbki plików AVI, które doskonale sprawdzają się do zapisu wideo kodekiem Xvid. W przypadku nowszego standardu, kontener AVI jest już na tyle przestarzały, że aby umieścić w nim strumień AVC, potrzeba wielu jego modyfikacji m.in. zmiany kolejności klatek w strumieniu. Dla AVC przyjęło się używać kontenerów MP4 oraz MKV (Matroska), których normalnie VirtualDub nie otwiera, ani tym bardziej do nich nie zapisuje. Tak więc na pierwszy rzut oka program w ogóle nie nadaje się do kompresji koderem x264. Na szczęście tylko pozornie…

Koder x264 występuje w dwóch wersjach: CLI (Command Line Interface) oraz VfW (Video for Windows). Wersja CLI wymaga wywołania z wiersza poleceń i wpisywania skomplikowanych prefiksów, więc bez nakładki graficznej (tzw. GUI) jest dość trudny w użyciu. Za najlepszą graficzną nakładkę na x264 uznawany jest meGUI, który rzeczywiście jest bardzo dobrą platformą, ma jednak jedną zasadniczą wadę – na jego wejście trzeba podawać całe pliki, ewentualnie wcześniej przygotowane ich fragmenty przy pomocy skryptów AviSynth (np. funkcja Trim). Tak więc o wygodnej edycji wideo możemy zapomnieć. Oczywiście jest to wykonalne, ale robienie tego z poziomu skryptów AviSynth do wygodnych i prostych nie należy. Więc jeśli przed skompresowaniem materiału w x264 chcemy dokonać jego edycji, to VirtualDub będzie dobrym wyborem.

Samego VirtualDuba specjalnie opisywał nie będę, jeśli ktoś go używał zna jego zalety, a głównie prostotę użytkowania, przejrzysty interfejs i całą masę dodatków. Jakie są jednak wady… Program wymaga, aby wszystkie dekodery i kompresory których używa były w starszym standardzie VfW. Filtry DirectShow są tutaj bezużyteczne (nie do końca, ale o tym dalej). Jeśli chcemy w VirtualDubie kompresować za pomocą x264, musimy zainstalować tą drugą jego wersję, czyli VfW (dostępna tutaj: http://sourceforge.net/projects/x264vfw/). To załatwia temat samego procesu kompresji wideo, ale jeśli obsługa nowego standardu ma być pełna, to musimy jeszcze mieć możliwość wczytywania plików MKV i MP4 oraz dekodowania strumieni AVC i wielokanałowego dźwięku.

W przypadku VirtualDuba musimy wziąć pod uwagę, że aby stworzyć pełny film (obraz + dźwięk) w kontenerach MKV lub MP4, wideo trzeba kompresować niezależnie od dźwięku, po czym scalić całość poza programem. I to ścieżka audio sprawia więcej problemów, niż sama kompresja za pomocą x264. Jeśli chodzi o wybór kontenera to zdecydowanie polecam MKV, ze względu na istnienie bardzo dobrego muxera dla MKV – mkvmerge.

Poniżej podaję sposoby nie tyle samej kompresji x264, ile obsługi plików filmowych w standardzie H.264/AVC w VirtualDubie, z naciskiem na obsługę audio. Sam sposób kompresji x264 opisany jest dalej, ponieważ przebiega bardzo podobnie, niezależnie od zastosowanej metody.

 

Sposób pierwszy: filtr wejściowy Directshow Input Driver

Jest to plugin stworzony przez jednego z twórców VirtualDuba (do pobrania stąd: http://www.virtualdub.org/beta/DShowInputDriver-0.93.zip). Nie ma instalatora, plik z filtrem rozpakowujemy bezpośrednio do folderu programu: plugins (lub plugins32 / plugins64, w zależności od wersji). Filtr jest ładowany automatycznie przy starcie VirtualDuba. Powinniśmy to od razu zauważyć po zwiększonej liście obsługiwanych formatów plików:

8-vdub-open

To że plik zostanie otwarty nie oznacza jeszcze, że w programie zobaczymy obraz i usłyszymy dźwięk. Directshow Input Driver sam w sobie nie jest dekoderem audio/wideo. Jak jego nazwa wskazuje, próbuje otworzyć i zdekodować strumienie przy pomocy zewnętrznych filtrów DirectShow, zainstalowanych w systemie. Może to być zaletą, ale też wadą. Jeśli do odtwarzania filmów używamy wyłącznie odtwarzacza wideo z wbudowanymi wewnętrznymi filtrami, jak np. MPC-HC, to będziemy mieli problem, bo nasz opisywany plugin nie będzie w stanie z nich skorzystać. Dlatego też do dekodowania standardu H.264/AVC sugerowałem używania zewnętrznych dekoderów i splitterów (opisane w moim poprzednim poradniku dotyczącym konfiguracji MPC-HC do współpracy z TV). Jeśli robiliśmy to wg tamtego poradnika, to o ile w konfiguracjach filtrów włączyliśmy wyświetlanie ikon w tzw. trayu, powinniśmy po otwarciu pliku ze strumieniem AVC zobaczyć coś takiego:

8-tray-icons

Skromna konfiguracja Directshow Input Driver ukryta jest trochę mało intuicyjnie pod opcją „File Information…”. Ogólnym problemem tego filtra jest brak dekodowania dźwięku wielokanałowego, przynajmniej  mnie nie udało się go uzyskać. Nawet mimo wyłączenia w konfiguracji filtra „Force stereo PCM format if available” i włączeniu w AC3Filter wyjścia wielokanałowego, dźwięk dekodowany jest w 2 kanałach (ciekawy efekt słychać kiedy karta dźwiękowa próbuje odtworzyć te 5 kanałów w stereo). Jakby tego wszystkiego nie ustawić zawsze otrzymujemy downmix do nieskompresowanego stereo. Jeśli w naszym przygotowywanym filmie planowaliśmy dźwięk stereo, to nie będzie stanowiło to problemu. W przeciwnym razie ścieżkę audio musimy skompresować inną metodą. Podsumowując, najlepsze ustawienia dla mojej konfiguracji filtrów osiągnąłem wyłączając „Force stereo PCM format if available”, a w AC3Filter przestawiając wyjście na stereo oraz wyłączając „używaj SPDIF”. Dźwięk nie zanikał po kilku sekundach, jak w innych ustawieniach i nie był przez nic zakłócany.

Nie testowałem z tym pluginem wszystkich znanych dekoderów, ale z duetem Haali Media Splitter + CoreAVC działa on dość sprawnie. Strumień jest obsługiwany z dokładnością do jednej klatki (frame accurate), poprawnie działa też odtwarzanie obrazu wraz z dźwiękiem.

 

Sposób drugi: AviSynth + plugin FFmpegSource2

Ten sposób wymaga zainstalowania AviSynth (jeśli chcemy „bawić” się kompresją to zdecydowanie podstawa) i dodatkowego filtra wejściowego FFmpegSource2 (można pobrać stąd: https://code.google.com/p/ffmpegsource/downloads/detail?name=ffms-2.17.7z). Filtr rozpakowujemy do folderu AviSynth \ plugins. Niestety ten sposób jest trudniejszy od poprzedniego. Aby otworzyć plik w VirtualDubie musimy napisać skrypt AviSynth i załadować go do programu. Najlepiej stworzyć sobie szablon i zmieniać tylko nazwę pliku, który chcemy wczytywać. Powinien on wyglądać tak:

LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\ffms2.dll")
audio = FFAudioSource("ścieżka_do_pliku")
video = FFVideoSource("ścieżka_do_pliku")
AudioDub(video, audio)

Po otwarciu pliku ze skryptem nie zobaczymy od razu efektu, ponieważ FFmpegSource2 musi jeszcze wczytywany plik zaindeksować i w zależności od długości materiału może to chwilę potrwać. VirtualDub nie pokazuje żadnej informacji, że indeksowanie jest w toku, więc przez chwilę wygląda jakby program nie odpowiadał. Indeksowanie jest przeprowadzanie tylko raz (generowane są pliki .ffindex), więc ponowne otwarcie pliku odbędzie się już błyskawicznie. Jeśli przez to wszystko przebrniemy, to teraz będzie już z góry :)

Podstawową różnicą pomiędzy poprzednim sposobem jest to, że tutaj prawidłowo wczytują i zapisują się (oczywiście zdekodowane) wielokanałowe ścieżki audio – zarówno AC3, DTS, jak i AAC. Z tego względu skupię się tutaj głównie na kompresji ścieżki dźwiękowej. Można to zrobić na dwa sposoby: poza VirtualDub, przy użyciu zewnętrznych koderów lub też bezpośrednio w samym programie. Ja preferuję ten pierwszy sposób – jest w nim mniej kombinacji i mamy większą kontrolę nad samym procesem kompresji audio. W zasadzie jedyne co trzeba zrobić w programie, to posłużenie się poleceniem „Save WAV”. Dostajemy wtedy wielokanałowy plik PCM w formacie WAV, który można dalej poddać kompresji (polecam do tego świetne narzędzie eac3to). Oczywiście jeśli robimy to w ten sposób, to podczas przeprowadzania kompresji wideo wyłączamy już ścieżkę dźwiękową – „Audio / No audio”. Jeśli wideo zapisujemy x264 w trybie „File”, to VirtualDub wygeneruje pusty plik AVI, który można później usunąć.

Drugie rozwiązanie to kompresja ścieżki dźwiękowej bezpośrednio w VirtualDubie. Aby to zrobić, trzeba doinstalować dodatkowe kodeki AC3 ACM lub AAC ACM (oba do pobrania stąd: http://gral.y0.pl/~fcchandler/). Tak jak w stosunku do wideo VirtualDub wymagał standardu Video for Vindows, tak do dźwięku wymaga starszego standardu ACM, czyli Audio Compression Manager. Niestety nie znalazłem kodera DTS w tym standardzie. Ścieżka dźwiękowa znajdzie się oczywiście w pliku AVI. Można ją stamtąd wydobyć przy użyciu np. Avidemux, ale można to też zrobić samym VirtualDubem stosując pewien trik. Pliku AVI ze ścieżką audio nie możemy tak zwyczajnie otworzyć, bo albo program zgłosi brak dekodera x264 (mimo, że nie ma w nim wideo) albo wczyta go przez plugin Directshow Input Driver, który jak już pisałem, z dźwiękiem słabo sobie radzi (zdekoduje i wykona downmix do stereo). Należy więc potraktować taki plik AVI małym programikiem FourCC Changer (dostępny razem z kodekiem Xvid) i zmienić w nim 4-literowy kod FourCC z x264 na np. XVID lub inny, którego dekoder w standardzie VfW mamy zainstalowany w systemie. Taki plik wczytujemy już normalnie do VirtualDub i wykonujemy eksport ścieżki dźwiękowej: „Export / Raw audio”. Rozszerzenie pliku musimy ustawić ręcznie na .ac3, .aac lub inne.

Jest jeszcze trzeci sposób, działający jednak tylko wtedy gdy nie wykonywaliśmy na naszym filmie żadnej edycji, tzn. nic nie wycinaliśmy i nic nie dodawaliśmy z innych plików. Możemy wtedy pominąć w ogóle proces kompresji audio i scalić od razu nasz wynikowy plik wideo z oryginalną ścieżką audio z pliku wejściowego. Mamy wtedy pewność, że nie stracimy nic z jakości dźwięku. Można do tego wykorzystać wspomniane już narzędzie eac3to. Przykładowo jeśli w filmie jest ścieżka dts wpisujemy:

eac3to.exe  plik_wejściowy.mkv  audio.dts

Korzystamy następnie z programu mkvmerge i scalamy nasz nowy plik wideo z plikiem audio.dts. Koniecznie sprawdźmy czy po takiej operacji nie wystąpiły żadne przesunięcia dźwięku względem obrazu.

Wracając teraz do naszego pluginu FFmpegSource2 to jeśli chodzi o sam proces dekodowania, to w odróżnieniu od poprzedniej metody, ma on wbudowane wszystkie potrzebne dekodery i splittery, więc żadne zewnętrzne filtry nie są tutaj używane. Natomiast zdekodowane klatki i próbki dźwięku do VirtualDuba dostarcza AviSynth poleceniem AudioDub. Skoro dekodery są wbudowane, to jakie formaty są obsługiwane… AVI, FLV, MKV i MP4 jako frame accurate, czyli z dokładnością do jednej klatki. Można też wypróbować WMV, OGM, VOB i MPG, ale bez gwarancji, że strumień będzie frame accurate. Co do ścieżek audio, to jak zapewniają twórcy, wszystkie formaty osadzone w obsługiwanych kontenerach będą prawidłowo dekodowane. Tylko w przypadku MP3 mogą pojawić się problemy, na szczęście wideo x264 wyjątkowo rzadko łączone jest z tym formatem.

Trzeba jeszcze wspomnieć o poważnej wadzie tego filtra – nie działa tutaj tak jak powinno odtwarzanie – obraz się przycina (może tylko u mnie?). Zamiast tego można używać przewijania poklatkowego przy pomocy kursorów – tutaj wszystko działa płynnie, tylko brak przy tym dźwięku. Tak więc o wygodnej edycji filmu możemy zapomnieć.

 

Kompresja wideo

W obu sposobach kompresja wideo praktycznie niczym się nie różni, dlatego opisują ją dopiero tutaj.

Po pierwsze musimy pamiętać, że używając filtra Directshow Input Driver, kompresujemy w trybie „Full processing mode”. W przeciwnym razie albo zamiast obrazu dostaniemy zielone tło albo obraz będzie odwrócony do góry nogami. Drugą ważną sprawą jest sposób przeprowadzania konwersji kolorów. VirtualDub preferuje formaty RGB i jeśli w ustawieniach zewnętrznego dekodera zaznaczymy wszystkie możliwe formaty wyjściowe, to wybrany zostanie właśnie RGB. I teraz w zależności od tego co ustawiliśmy w opcji „Video / Color Depth” zostanie przeprowadzona konwersja przez program lub też przez sam kompresor x264 (lub w najgorszym razie konwersja będzie przeprowadzona dwukrotnie, gdzie nie muszę chyba tłumaczyć, że stracimy wtedy na jakości). Wszystko zależy od tego z jaką przestrzenią kolorów zapisane jest wideo poddawane kompresji, ale ogromna większość filmów używa formatu YUV 4:2:0. Dlatego też najrozsądniej (dotyczy tylko Directshow Input Driver) jest ograniczyć w dekoderze wideo (np. CoreAVC) wyjściowe formaty do dwóch: YV12 i NV12 (to inne oznaczenia dla YUV 4:2:0). Musimy być tylko przygotowani, że jeśli spróbujemy odtwarzać strumień wejściowy (klawisz play z literą I), to VirtualDub będzie wtedy wyświetlał okno z błędem o braku możliwości wyświetlania strumienia w formacie RGB – na szczęście możemy zamiast tego używać odtwarzania wyjściowego i wszystko działa jak należy (w Directshow Input Driver, w FFmpegSource2 nie działa wcale, o czym już pisałem). W ustawieniach „Video / Color Depth” najlepiej wg mnie jest ustawić brak konwersji – czyli „Autoselect” po lewej i „Same as decompression format” po prawej.

Inna możliwość to zaznaczyć wszystkie formaty w ustawieniach dekodera wideo, a w opcji „Video / Color Depth” wybrać jak na zrzucie poniżej, efekt w zasadzie będzie ten sam:

8-vdub-colorDepth

Przypominam, że to są ustawienia dla filmów zapisanych z przestrzenią YUV 4:2:0, w przypadku innych musimy sami pokombinować, pamiętając tylko o tym, żeby przeprowadzać jak najmniej niepotrzebnych konwersji.

Teraz ustawienia dla kodera x264. Nie będę opisywał ustawień dotyczących samego procesu kompresji, ponieważ wykracza to poza tematykę tego wpisu, a zainteresowani znajdą takie opisy w dziesiątkach innych poradników. Skupię się na opcjach istotnych dla poprawnego działania kompresora x264 w VirtualDubie.

8-x264-config

Najważniejsze, aby w polu „Output mode” ustawić „File”, zamiast „VfW”. Jest to jeden z tzw. hacków, które umożliwiają obejście niektórych mechanizmów VirtualDuba, a konkretnie chodzi tutaj o zapis do kontenera AVI (tak będzie przy ustawieniu VfW), który jak już pisałem na początku, nie jest polecany ze względu na jego przestarzałość. Przy ustawieniu „File”, x264 przełącza wyjście kompresowanego strumienia do niezależnie tworzonego przez siebie pliku. Aby rozpocząć kompresję wybieramy standardowo „Save as AVI”, ale w wygenerowanym przez VirtualDub pliku AVI będzie wyłącznie strumień dźwięku, natomiast strumień wideo zostanie zapisany przez koder x264 w drugim pliku. Później możemy oddzielnie skompresować ścieżkę dźwiękową za pomocą jakiegoś zewnętrznego kodera, po czym scalić oba pliki, najlepiej przy użyciu mkvmerge (część pakietu MKVToolNix) otrzymując gotowy film.

Jeśli stosowaliśmy się do opisywanych tutaj zaleceń, to przestrzeń kolorów pozostawiamy bez konwersji, czyli „Keep input colorspace”. Pamiętajmy tylko, że zapis z pełną przestrzenią kolorów RGB nie jest zalecany, ponieważ niepotrzebnie zwiększa rozmiar pliku wynikowego, więc jeśli nie mamy pewności jaki format kolorów dociera do kodera x264, to ustawmy „Convert to YUV 4:2:0”.

Pole „VirtualDub Hack” powinno być zaznaczone i to nie wymaga chyba większych wyjaśnień. Co do włączenia lub wyłączenia wbudowanego dekodera opartego na libav, to wygląda to tak, że jeśli do dekodowania obrazu VirtualDub włączy już jakiś dekoder, to x264 nie wyłączy go, zastępując swoim, nawet jeśli zechcemy używać dekodera libav (czyli nie odznaczymy pola „Disable decoder”). Tak więc korzystając z obu opisywanych tutaj sposobów, nie ma znaczenia czy odznaczymy to pole, czy też nie.

 

Inne sposoby: filtr wejściowy Matroska plugin

Nie będę się tutaj rozpisywał, ponieważ u mnie ten filtr nie działa. Sam plik MKV otwiera się w VirtualDubie, ale wyświetla czarny obraz z napisem „Missing codec”. Pomyślałem, że plugin wymaga dekoderów VfW, więc zainstalowałem i skonfigurowałem ffdshow i jego filtry, niestety nic to nie dało. Jeśli komuś udało się coś zdziałać z tym filtrem, to chętnie poczytam jak to zrobił.

 

UWAGA: na otwartym kodzie źródłowym VirtualDuba powstało kilka jego odmian, które nie są już obecnie rozwijane. Najpopularniejszy to VirtualDubMod, który teoretycznie ma wbudowaną obsługę plików MKV, jednak mało który plik działa z nim prawidłowo.

 

Testy szybkości kompresji x264

Aby pomóc w podjęciu decyzji, który sposób obsługi standardu AVC wybrać, sprawdziłem czy występują różnice w szybkości kompresji:

  • Materiał 720p, wideo AVC, 5000 klatek (długość: 3:29s), bez dźwięku
    Ustawienia x264: preset medium, single-pass, średnia przepływność: 1500 kbit/s.
    3 : 33               Directshow Input Driver (Haali + CoreAVC)
    3 : 47               FFmpegSource2
  • Materiał 1080p, wideo AVC, 5000 klatek (długość: 3:29s), bez dźwięku
    Ustawienia x264: preset medium, single-pass, średnia przepływność: 3000 kbit/s.
    6 : 29               Directshow Input Driver (Haali + CoreAVC)
    7 : 02               FFmpegSource2

Jak widać różnice występują i nie są wcale małe. Lepsze osiągi Directshow Input Driver są wynikiem tego, że dekodowanie wideo w CoreAVC jest wspierane przez kartę graficzną (CUDA). Co do FFmpegSource2 brak danych na temat wsparcia przez kartę graficzną, ale albo nie występuje albo nie jest tak wydajne.

 

Podsumowując wszystkie plusy i minusy, moim zdaniem, do kompresji wideo x264 lepiej sprawdzi się Directshow Input Driver wspomagany dekoderem CoreAVC. Głównie dlatego, że jest sporo szybszy w kompresji (przy pełnometrażowym filmie różnice będą znaczące) oraz bez problemów działa tu odtwarzanie wideo wraz z dźwiękiem.

Natomiast do kompresji lub wyodrębnienia ścieżki audio lepiej sprawdzi się FFmpegSource2, ponieważ tylko on dekoduje dźwięk wielokanałowy.

 


Opublikowano: 28 wrz 2013 / Kategoria: konfiguracja i ustawienia / 22 381 wyświetleń

Odpowiedzi: 11 do wpisu “Kompresja x264 za pomocą VirtualDub”

  1. Bo pisze:

    Witam !
    Czy jest możliwe uzyskanie obrazu HD w VDub bez artefaktów na
    podglądzie tak aby była widoczna pełna klatka a nie tylko jej
    powiększona część ?
    Wtedy nie widać logo bo jest poza obrazem i nie można użyć filtra
    Delogo lub msu.
    Sam plik h.264 mkv wczytuje się (z pluginem ff….). Czy jednak taki
    filtr będzie współpracował z takim plikiem no i czy można
    zapisać output też jako mkv h264 ?

    Jeśli nie to może zna Pan software który wykonał by takie zadanie w połączeniu z jakimś dobrym pluginem a może też osobny program do usuwania logo TV z
    materiału mkv HD h.264 a może,jeśli trzeba,z wyjściowego strumienia mpeg4.ts nagranego z tunera bez przetwarzania na inny format i kodowania
    innym kodekiem , używania pośrednictwa Avisynth itp?

    Próbowałem AVIDEMUX i tam tych kłopotów nie ma. Widać że to nowa generacja tego typu programów w relacji do Vduba ale niestety zaimplementowany tam tego typu plugin z rodziny Sharpness po prostu interpoluje pixele i stosuje blurring co nie daje zadawalających rezultatów. Chodzi głównie o biało-transparentne napisy
    w stylu BBC HD czy Canal+ na które jest ponoć niezły sposób bez uciekania się do After Effects itp. Czy jakkolwiek można przystosować te filtry Delogo lub msu do pracy z Avidemuxem?

    Tak mi się wydaje że trafiłem na właściwego
    człowieka na właściwym miejscu do jakiejś porady w tym temacie ???

    • qbakos pisze:

      Jeśli chodzi o AviDemux to niestety nie pomogę, bo nie używałem tego programu. Zwyczajnie nie miałem takiej potrzeby, bo VDub do prostej edycji mi wystarcza, a do poważniejszego montażu mam inne narzędzia.

      Co do VDuba i podglądu całej klatki to wystarczy w menu wybrać: View/Pane layout/Output pane only oraz w tym samym menu zaznaczyć „Auto-size panes”. Powinno pomóc.
      Jeśli plik ma dźwięk stereo to polecam pierwszy plugin Directshow Input Driver + zainstalowanie w systemie CoreAVC i AC3Filter, tak jak opisałem. W tym zestawieniu montaż jest zdecydowanie wygodniejszy, bo mamy dostępny podgląd filmu wraz z dźwiękiem. Jeśli z jakichś względów chcemy wykorzystać AviSynth to oczywiście drugą metodę również można stosować (ale bez płynnego podglądu filmu). Filtr DeLogo działa, a z zapisem do MKV przy pomocy x264 też nie ma problemu (wszystko jest opisane w artykule). Trzeba tylko pamiętać, że strumienie obrazu i dźwięku zostaną rozdzielone i trzeba je potem scalić np. w mkvmerge GUI.
      Z plikami TS nie mam za często do czynienia, ale sprawdziłem na szybko jeden i otwiera się bez problemu w VDubie (przez plugin Directshow Input Driver, z AviSynth nie próbowałem).
      Jeśli nie wie Pan jeszcze jak używać filtra DeLogo to jest dobry artykuł na ten temat: http://www.videoaudio.pl/forum/Usuwanie-Loga-Stacji-Z-Filmu-W-Virtualdub-Z-Uzyciem-Delogo-132-t3177.html

      To by było na tyle, jeśli ma Pan jeszcze jakieś pytania to proszę pisać.

  2. Sławek pisze:

    Witam, Przepraszam, jeśli moje pytanie okaże się trywialne.
    Od jakiegoś czasu przy przesuwaniu suwakiem (strzałką w prawo z klawiatury) nie mam podglądu filmu. Jestem ornitologiem często używam VirtualDub do dokładnego liczenia zgrupowań mew, które wcześniej nagrałem. Ten podgląd i ewentualne zatrzymanie filmu z ciągłym podglądem jest w tym przypadku bardzo przydatne. Co może być powodem takiego stanu rzeczy?
    Sławek

    • qbakos pisze:

      Instalowałeś może ostatnio jakieś codec-packi lub większy program do montażu video? Często dochodzi wtedy do konfliktu kodeków i dzieją się tego typu rzeczy.

      • Sławek pisze:

        Dzięki serdeczne za odzew. Tak faktycznie instalowałem Handbrake do konwersji na mp4. Już odinstalowałem go, ale problem został.

        • qbakos pisze:

          Niestety, ale bez znajomości danego systemu trudno coś więcej poradzić. Przyczyn mogą być całe setki…
          Pod innymi programami te pliki się otwierają poprawnie? Próbowałeś sprawdzać za pomocą Graph Studio jakie kodeki i filtry biorą udział w odtwarzaniu? Jeśli nie, to warto sprawdzić i możesz podesłać wyniki – może coś dziwnego się tam zaplątało…
          W ostateczności zawsze pozostaje przywrócenie systemu do okresu kiedy wszystko było ok – brutalne, ale u mnie zawsze działa :)

  3. sirDaniel pisze:

    Sprawdzałem z ciekawości, matroska .vdplugin działa w vdub. Trzeba wejść w video>>compression i wybrać ffdshow a potem configure. Potem ustawić kodek h264 na libavcodec albo quicksync. Może zależnie od 32/64bit masz inaczej ustawione, może miałeś disabled albo nie odznaczyłeś w x264vfw disabled decoding, a ten x264vfw nie ma wbudowanego dekodowania.

    • qbakos pisze:

      Dzięki za wartościowy komentarz. Nie bardzo pamiętam jak to wtedy konfigurowałem, ale wiem, że ffdshow na pewno nie ustawiałem w zakładce compression, bo wydawało mi się to bez sensu… w końcu ta zakładka służy do zapisu, a nie odtwarzania. Jeśli tak to ma być poprawnie ustawione to jest to dość dziwne.

      • sirDaniel pisze:

        Przepraszam, nie dopisałem że chodzi o ustawienie dekodera. Po prostu z poziomu vdub można tak szybko przejść do ustawień ffdshow vfw. Po wybraniu ffdshow vfw dekoder h264 libavcodec, napis missing codec mi znika i widzę obraz.

  4. Wojtek pisze:

    Witam.
    Chciałbym zapytać się, w jaki sposób poprzez VirtualDub mógłbym stworzyć film, łącząc uprzednio obrazek .jpg + dźwięk .wav.
    Oczywiście wczytuję wpierw obrazek do VirtualDub, potem dźwięk. I teraz co do kwestii ustawień, jak to właściwie połączyć?
    W opcji Video – Frame Rate… zaznaczam: Change so video and audio durations match (aby z jednym obrazkiem zsynchronizować długość odtwarzanego pliki audio). Dalej: czy w Audio mogę pozostawić Direct stream copy (bo chcę zachować najwyższej jakości dźwięk)?
    A co do obrazka (Video), co ustawić w opcji Compression, czy zostawić tak jak jest…?
    Oczywiście próbowałem innymi programami łączyć dwa pliki (.jpg + .wav), ale skutek był taki, że bardzo wiele traciłem na jakości obu…
    A testowałem wiele różnych programów, gdzie VirtualDub wydaje się to robić bardzo dobrze, tylko ja coś nie potrafię go obsłużyć…
    Nawet jeśli w jakiś sposób (próbami i błędami) doprowadzę do połączenia tych dwóch plików w format .avi, to odtwarzacz MPC w ogóle będzie miał problem z otwarciem tego stworzonego w VirtualDub .avi. Co najwyżej KMPlayer odtworzy to bez problemu, ale co z tego, skoro gdy tak przygotowany plik chcę wrzucić na youtube, serwis go nie chce przetworzyć, pomimo, że oficjalnie przyjmuje format .avi…
    Proszę o pomoc… Wiele godzin/dni nad tym spędziłem i nie wiem jak rozwiązać ten problem, a zależy mi na najwyższej jakości pliku wynikowego (nie ma być to forma slajdu = obrazek + dźwięk; tylko plik, którego format wskazuje na video).

    • qbakos pisze:

      Zacznij od solidnego poczytania o tym co robisz, bo wydaje mi się, że brakuje Ci trochę wiedzy i stąd problemy o których piszesz.
      To co ustawisz w zakładce Compression ma podstawowe znaczenie dla tego co otrzymasz. Nie wiem co tam masz domyślnie, ale zacznij o poczytaniu o formatach kompresji, ewentualnie doinstaluj odpowiednie kodeki zgodne z VirtualDubem (ważne!) i skonfiguruj je. Dźwięk w formacie WAV to zły pomysł. Ścieżka dźwiękowa powinna być skompresowana – masz do wyboru MP3, AC3, a nawet DTS, ale WAV to ogromna strata miejsca.
      Druga sprawa: to, że youtube przyjmuje AVI to jeszcze nic nie znaczy. AVI jest tylko kontenerem (czyli mówiąc prosto takim opakowaniem na strumienie obrazu i dźwięku, poprzeplatane ze sobą), a co kryje się wewnątrz to zupełnie inna sprawa. Jeśli nie przyjmuje Twojego pliku to może znaczyć, że użyłeś jakichś egzotycznych formatów kompresji lub też plik jest nieprawidłowo zapisany.
      Polecam Ci też zainstalować jakiś program wyświetlający dokładne infomacje o plikach wideo, jak MediaInfo lub GSpot (jeśli wystarczy Ci obsługa AVI).

Musisz mieć włączoną obsługę JavaScript, aby dodawać komentarze!

Zostaw odpowiedź


CommentLuv badge

Następny / poprzedni artykuł:



Kategorie

O autorze

    Nazywam się Jakub Kościelny. Na forach jako qbakos. Technikami przetwarzania i kompresji wideo interesuję się właściwie od studiów, czyli już dość długo.
    Kilka lat temu postanowiłem połączyć to hobby z czymś poważniejszym i zacząłem o tym pisać, robić badania, pomiary.
    Na tej stronie zebrałem to wszystko w mam nadzieję przystępnej formie i udostępniłem zainteresowanym tą tematyką.
    A przy okazji mam motywację, aby cały czas szukać nowych tematów na artykuły... oraz zgłębiać tajniki WordPressa. Zapraszam :)