Zmiana fps filmu bez rozsynchronizowania obrazu i dźwięku

0

Witam,

Mam film o fps=25, chce zamienic na film fps=23.976 ale w ten sposob, zeby obraz i dźwięk się nie rozjechały. Próbowałem VirtualDub ale niestety nie nadaje się.
Oczywiście zdaje sobie sprawę, że w takim przypadku zmieni się szybkość filmu - a będzie się to przekładać na nieznaczną zmianę tonacji dzwięku - i właśnie o taki efekt mi chodzi.

Po co mi to? Mam film hd fps=23.976 z angielska ściezka dzwiekowa oraz zripowany xvid fps=25 z polskim lektorem. Idea jest taka, zeby zmienic fps w filmie xvid z lektorem, wyciagnac z tego audio np. do mp3 i wmuksowac do pliku mkv jako nowa sciezke dzwiekowa.

Teoretycznie to może sie udac, jezeli bede posiadac 2 identyczne kopie filmu (z tego samego zrodla, tak samo obciete) - i w tym wypadku tak jest, ale fps jest inne - jak porownac dzwiek widac tez, ze tonacja jest inna.

Probowalem tez najpierw wyciagnac audio z pliku xvid i zmienic pitch, ale to nic nie dalo - i tak dzwiek rozjechal sie z obrazem.

A moze jest jeszcze jakis inny sposob, specjalne programy do tego? Ewentualnie moglby tu pomoc program, w ktorym moge na przyklad zadac docelowy czas (z dokladnoscia do 0.1 s) i program na tej podstawie dokladnie obliczy nowa tonacje lub oblicze sam - ale musze miec mozliwosc bardzo dokladnego ustawienia tonacji - probowalem GoldWave, ale zmiana tonacji z krokiem 1% nie wystarcza

0

Musisz najpierw wyciągnąć dźwięk z filmu do mp3 np. za pomocą NunDub. Później zmieniasz ilość klatek w filmie ale bez dźwięku. Później dorzucasz do tego dźwięk.

0

Wlasnie wolalbym zabrac sie do tego od drugiej strony, czyli nie ruszac filmu, a dorzucic jedynie nowa sciezkie dzwiekowa. Filmy HD sa kodowane za pomoca kontenera mkv, gdzie mozesz dodawac nowe sciezki dzwiekowe, napisy itd nie ruszajac tego co jest. Takie podejscie jak podales byloby dobre dla normalnych plikow avi, gdzie i tak musze ponownie kodowac caly film.

Wystarczyłoby posiadac odpowiednia ścieżkę dźwiękowa i dodać ją do pliku - nie ma potrzeby ponownego kodowania wideo, a cala operacja trwa maksymalnie 5 minut.

0

Nie wiem jak chcesz zmienić framerate materiału video bez ponownej kompresji. Pewnie są programy, które to robią w locie, tj. np. opuszczają niektóre klatki w przypadku zmniejszenia ilości. Ale nie utworzysz w ten sposób pliku z innym framerate.

0

Nie chce zmieniac framerate wideo, a szybkosc audio - wlasnie o to chodzi. Wideo w pliku hd nie ruszam, moge co najwyzej przekonwertowac plik xvid ale to jedynie w tym celu, zeby móc potem z niego wyciagnac dopasowane audio, ktore dorzuce do filmu hd.

0

Ale rozumiem, że chcesz pozbyć się zniekształcenia dźwięku przy jego skracaniu lub wydłużaniu?
Jeśli wyeksportujesz audio do mp3 to będzie ono niezależne od filmu. Tzn. skoro, filmy mają jednakową długość ale inny framerate. To oddzielenie ścieżki dźwiękowej do mp3 uniezależnia audio od wizji. I taki dźwięk możesz wrzucić do dowolnego klipu, np. poprzez NunDub. Dobrze rozumiem to co chcesz osiągnąć?

Jedyne co bym radził zrobić to najpierw ścieżkę wyeksportować może do wav, a później znowu ją zakodować do mp3. Chociaż teoretycznie ścieżka dźwiękowa nie jest zależna od obrazu.

0

Ale rozumiem, że chcesz pozbyć się zniekształcenia dźwięku przy jego skracaniu lub wydłużaniu?

Nie. Chce wydłużyć/skrócić dzwięk, powodując jego zniekształcenie, ale tym samym dopasowując go do obrazu w drugiej kopii filmu - znieksztłcenie (zmiana tonacji) będzie na tyle małe że nie będzie to nic przeszkadzać. Zreszta to się zawsze tak odbywa - weź sobie 2 kopie tego samego filmu z różnymi fps i zobaczysz, że w jednym dźwięk będzie zniekształcony w stosunku do drugiego. W końcu to chyba logiczne - skoro w jednym obraz idzie szybciej niż w drugim, to i dźwięk musi być do tego dopasowany.

Jeśli wyeksportujesz audio do mp3 to będzie ono niezależne od filmu. Tzn. skoro, filmy mają jednakową długość ale inny framerate. To oddzielenie ścieżki dźwiękowej do mp3 uniezależnia audio od wizji.

W tym problem - chodzi o takie dopasowanie (skrócenie lub rozciągnięcie tej wyciągniętej ścieżki), żeby pasowała do filmu o docelowym framerate. Problem w tym, że trzeba to ustawić bardzo precyzyjnie. Nieistotne, czy będzie to mp3 czy wav, ważne aby miec program ktory pozwala dźwięk w tym formacie przetwarzac

Reasumując, są dwa sposoby:

  • sposób1 (jak powyżej). Najpierw wyciągnąć dźwięk z pierwszej kopii filmu, potem dopasować jego długość (ze zniekształceniem), zakodować do mp3 i dorzucić do drugiej kopii filmu (tej o innym fps)
  • sposób2: najpierw zmienić fps pierwszej kopii filmu na wartość taką, jaką ma druga kopia, ale ze zniekształceniem audio, co nie spowoduje rozsynchronizowania obrazu i dźwięku, następnie wyciągnięcie audio z tej pierwszej, zmienionej kopii filmu i dorzucenie go do drugiej (wtedy już będzie pasować).

Zmiana fps obrazu w filmie HD nie wchodzi w gre - musze dopasowac ścieżkę dźwiękową wyciągniętą z innej kopii filmu tak, zeby pasowala do obrazu w kopii HD.

Mam nadzieje, że teraz juz wiadomo o co chodzi. Pytanie, jakiego oprogramowania do tego użyć. Problem nie w tym, jak nową scieżkę dzwiękową do docelowej kopii filmu dodać, a w tym czym ją dopasować do innego fps.

cos ciekawego znalazlem tutaj: http://forum.doom9.org/showthread.php?t=38854

0

Pierwsza i najważniejsza rzecz:
W DŹWIĘKU NIE MA CZEGOŚ TAKIEGO JAK FPS I NIE JEST ON ZALEŻY OD FILMU.

  1. Masz dwa filmy o jednakowej długości np. 1 godz. 10 min i 10 sekund.
  2. Pierwszy film ma 25 fps a drugi 30 fps.
  3. Długość ścieżki dźwiękowej w obu filmach wynosi 1 godz. 10 min i 10 sekund czyli tyle co długość filmu.
  4. Obie ścieżki dźwiękowe będą brzmiały identycznie, nie będzie żadnej zmiany tonacji.

Pytanie: Kiedy dojdzie do zmiany tonacji?
Odpowiedź: Do zmiany tonacji dojdzie wtedy gdy mając film z dźwiękiem zmienimy jego framerate lub długość.

Jak już pisałem wcześniej, jeżeli dźwięk jest w pliku np. wav - został wcześniej wyeksportowany z filmu 30 fps to jest w tym momencie niezależny od filmu. Teraz film możemy całkowicie pozbawić dźwięku i zmienić np. jego framerate do 25. Teraz po dodaniu znowu tej ścieżki dźwiękowej z pliku wav, dźwięk nadal będzie zsynchronizowany z filmem. A to dlatego, że przy odtwarzaniu dźwięku nie ma znaczenia framerate filmu. Wiem, że nie o to chodzi ale podaje przykład dla zilustrowania sytuacji.

Mała wzmianka z teorii dźwięku cyfrowego. Dźwięk w komputerze jest zapisywany przy użyciu tzw. sampli (próbki). Np. 128 próbek na sekundę. Wiadomo, im więcej próbek tym więcej informacji o dźwięku, dźwięk jest czystszy ale i więcej pamięci zajmuje w komputerze.

Teraz jeśli chodzi o Twój problem. Jeśli chcesz zastąpić ścieżkę dźwiękową w filmie HD ścieżką dźwiękową z filmu xvid, ważne ZASTĄPIĆ, nie POŁĄCZYĆ, to wystarczy zrobić tak:

  1. Usuwasz ścieżkę dźwiękową z filmu HD.
  2. Eksportujesz ścieżkę dźwiękową z filmu xvid do formatu WAV
  3. Dodajesz ścieżkę dźwiękową do filmu HD jednocześnie kodując go w jakimś formacie AC3 czy innym.

To tyle. Inna sytuacja byłaby jakbyś chciał dodać do istniejącej już ścieżki inną ścieżkę (tzn. nałożyć jedną na drugą). Wtedy ilość sampli musiała by się zgadzać, chociaż tego do końca pewny nie jestem.

0

W DŹWIĘKU NIE MA CZEGOŚ TAKIEGO JAK FPS I NIE JEST ON ZALEŻY OD FILMU.

Oj mylisz sie kolego :) Wytlumacze to tak. Im wiecej fps w filmie, tym szybciej "idzie" film.
Parametrem odpowiedzialnym za "szybkosc" obrazu jest wlasnie fps (klatki na sekunde). Z tego powodu mniejsza ilosc fps w filmie to dluzszy (tak, dokladnie!) o kilka sekund czas trwania filmu.

Proponuje teraz zastanowic sie nad jedną rzeczą. Załóżmy, że masz 2 kopie tego samego filmu. Pierwsza kopia jest zakodowana za pomoca fps=25, druga fps=23.976. Pierwszy film "idzie" więc szybciej (bardzo nieznacznie szybciej) od drugiego. Ale w takim wypadku zastanówmy się, co z dzwiękiem? Otóż dzwięk powinien iść proporcjonalnie szybciej - gdyby nie to, rozsynchronizowalby sie z obrazem. To zupelnie tak samo jak z napisami - dla roznych wartosci fps musza byc rozne napisy.
W jaki sposob dzwiek moze isc szybciej lub wolniej? Ano przez zmiane tonacji - to tak, jakbys nagral dzwiek na tasme z jedna predkoscia, a odtworzyl z wieksza - wtedy tonacja bedzie wyzsza, a caly dzwiek bedzie trwal krocej.

Czyli, operujac na twoim przykladzie - dzwiek wyciagniety z filmu 30 fps bedzie inny (krotszy czas trwania i wyzsza tonacja) niz ten wyciagniety z filmu 25 fps.
Czyli jak na zywca wyciagniesz sciezke dzwiekowa z filmu 30 fps a potem podlozysz ja do filmu fps=25 fps to chyba logiczne ze nie bedzie pasowac, prawda? Chyba dobrze wytlumaczylem.

Jakie jest wiec wyjscie z sytuacji? Wyjscia sa 2:

  • albo zmienic fps filmu na taki, ktory odpowiadana posiadanej przez nas sciezce dzwiekowej (to co proponowales wczesniej) i podlozyc ta sciezke dzwiekową
  • albo zmienic tonacje wyciagnietej sciezki dzwiekowej na taka, zeby dzwiek pasowal do filmu o wybranym fps (tak robie ja)

Teraz jeśli chodzi o Twój problem. Jeśli chcesz zastąpić ścieżkę dźwiękową w filmie HD ścieżką dźwiękową z filmu xvid, ważne ZASTĄPIĆ, nie POŁĄCZYĆ, to wystarczy zrobić tak:

  1. Usuwasz ścieżkę dźwiękową z filmu HD.
  2. Eksportujesz ścieżkę dźwiękową z filmu xvid do formatu WAV
  3. Dodajesz ścieżkę dźwiękową do filmu HD jednocześnie kodując go w jakimś formacie AC3 czy innym.

A czy kolega w ogole widzial kiedys film HD? ;) Filmy HD nigdy nie sa kodowane w xvid, a kontener to nie avi, ktory jest moim zdaniem zreszta bardzo ułomny.
Stosowany kontener to Matroska (mkv), który umozliwia obecnosci kilku sciezek dzwiekowych w roznych jezykach i przelaczanie sie pomiedzy nimi (zupelnie jak w DVD, tylko ze tutaj wszystko jest w jednym pliku). Wiecej tutaj: http://pl.wikipedia.org/wiki/Matroska
Mowiac obrazowo, mozna wiec dodac sobie do takiej Matroski co sie chce nie ruszajac ani nie kodujac ponownie tego co jest tam juz umieszczone - mozna na przyklad dorzucic polska sciezke dzwiekowa i przelaczac sie pomiedzy polska i angielska. A chyba logiczne, ze dzwiek przekonwertowac jest latwiej i szybciej niz obraz w rozdzielczosci HD - dlatego pierwszy sposob, ktory podales od razu wykluczylem.

Co do mojego problemu, ktos wymyslil juz programik, ktory realizuje to co chce zrobic - nazywa sie BeSweet. Aby zmienic tonacje sciezki dzwiekowej z 25 fps na 23.976, wystarczy napisac tak:

BeSweet.exe" -core( -input "plik.wav" -output "plik.mp3" ) -ota( -r 25000 23976 )

Program automatycznie zakoduje sciezke w formacie mp3 i zmieni tonacje o tyle ile trzeba. Dziala idealnie :)

0

Widziałem filmy HD ale nadal twierdzę, że się mylisz. Przeczytaj dokładnie to co napisałem. Bo Ty mówisz o zmianie framerate (fps) gdy obraz jest razem z dźwiękiem a ja mówię o oddzieleniu obrazu od dźwięku. Ale skoro znalazłeś rozwiązanie to chyba problemu już nie ma...

1 użytkowników online, w tym zalogowanych: 0, gości: 1