Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Pzyspieszyć materiał video, coś ala youtube x1,25 x1,5 x1,5

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Pzyspieszyć materiał video, coś ala youtube x1,25 x1,5 x1,5 x1,75 x2,0 - ffmpeg pod XP
From: "jedrek" <wonzespamem@w.on>
Date: Sun, 22 Mar 2020 13:23:23 +0100
Plik mam w kontenerze mp4. Na podstawie tego co wskazałeś, zrobiłem tak:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" -vn output.mkv

Coś podobnego próbowałem kilka miesięcy temy ale odpuściłem bo efekt był podobny.
Na XP jest kumunikat na czerwono:

Only '-af atempo=2.0' read, ignoring remaining -af options: Use ',' to separate filters

i wypluwa wnikowo tylko samą fonię w kontenerze mkv.
Czyli komenda dla video coś mu się nie widzi.

Potrzeba mi to na chłopski rozum przetłumaczyć o co z tym błędem dotyczącym tego tempa chodzi. Zaraz się okaże, że wersja ffmpeg krojona pod XP nie obsłuży takiej linii komend
Czy raczej szarpie się o podwójny cudzysłów " zamiast ' ?
W sklecaniu gadającego polecenia do linii komend nigdy nie byłem mistrzem ;)

Zrobienie samego przyspieszenia video bez fonii, czyli:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mkv

Robi bez problemu.
Ale złożenie dwóch komend nie podoba się programowi to co poleciłeś jako zbiorcze polecenie. Potem te dwa osobne klocki audio i video składam ręcznie przez mktoolnix to nie ma zastrzeżeń.
Czy te wartości przyspieszeń muszą być krotnością parzystą?
Czy raczej mogą być dowolną liczbą z ułamkiem nieskończonym?
Jak będzie wyglądać przyspieszenie o 1,5 czy 1,75?
Dla przyspieszenie x1,75 wstawiamy setpts 0,5714 czy jak?
A dla przyspieszenie x1,5  wstawiamy setpts 0,6666?
W przypadku parzystej wielkości widzę, że parametr setpts jest odwrotnością parametru atempo stąd taka dedukcja.

Jakie wartości mają przyjąć wtedy parametry x.x y.y
setpts=x.x*PTS[v];[0:a]atempo=y.y

Jeżeli chcemy przyspieszenie o 1,5x lub 1,75x
Zakładając, że takie nieparzyste przyspieszenia mogą w ogóle być realizowane.

Próby robiłem na tej wersji ffmpeg
ffmpeg-4.3-dev-327-g83e0b71-win32-static-xpmod-sse

Z tego co widzę nie musi być aż na takie stare sprzęty bez sse
Bo taki Athlon II X2 260 raczej nie wymaga takiego okrojenia co do obsługiwanych rozkazów.
Dawniej wątek
https://ffmpeg.zeranoe.com/forum/viewtopic.php?f=7&t=4961&p=12160&hilit=windows+xp#p12160
prowadził do tego:
https://ffmpeg.zeranoe.com/forum/viewtopic.php?f=13&t=3572&start=40#p12105
Gdzie były ładowane wersje pod XP, dziś już wątku nie ma.
Która wersja ffmpeg jest tą ostatnią pod XP?
Czyżby ostatnia oficjalna dla XP to
ffmpeg-20151126-git-72eaf72-win32-static
?
Natknąłem się jeszcze na taką wersję:
ffmpeg-N-86763-g341f012-win32-static_legacy
Ale to już chyba nie jest oficjalna tylko oddolnie przez jakichś pasjonatów sklecona?


Kolejne polecenie, które wskazałeś
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

Działa bez problemu.
Ale chcę ciut wolniej niż 2x przyspieszać
Próba dla 1,75x da radę? Co wstawić?

W ogóle z tego co słyszę przyspieszenie tej fonii odbywa się podobną metodą (w odsłuchu) jak robi to yt na swoim youtubowym playerze. Czyli jakby częstotliwość (barwa) głosu się nie zmienia, a zaczyna przyspieszać tempo mowy - czyli szybciej słowa lecą, a barwa głosu praktycznie się nie zmienia. A jak przyspieszamy ręcznie materiał w odtwarzaczu MPC-HC https://mpc-hc.org/downloads/ to efekt przyspieszenia jest jak w magnetofonie, któremu zwiększyliśmy sztucznie prędkość przesuwu taśmy przy odtwarzaniu dla nagrania zrealizowanego z normalną prędkością. Czyli z niskotonoego głosu, robi się taki bardziej wysoki szybszy dźwięk. Bardziej mi odpowiada ta metoda z MPC-HC, bo jakoś tak jakby w odsłuchu mniej cięła głoski i jest to bardziej zrozumiałe. Da sie to tak programowo przemielić żeby wyszedł efekt podobny do tego z odtwarzacza MPC-HC?

A z tym AVI to video musi być jakimś starszym kodekiem typu Xvid robione żeby przyspieszyć przez zmianę parametru fps?
Czy można to także robić do materiałów kodowanych AVC?
Które narzędzie do zmiany fps w AVI się najlepiej sprawdza?
Zrobię wtedy próbę jak z tym AVI się to zachowa.
Bo jeżeli sam kodek jakim była kompresja robiona nie ma znaczenia a tylko kontener ma tu wpływ to przeładuję to AVC do kontenera AVI i zrobię próbę. W przypadku zmiany fps rozumiem, że żadne klatki nie są pomijane i np z 25fps robi się np 50fps? A z tego co widzę w oknie linii komend dla ffmpeg, w czasie realizacji pierwszego proponowanego polecenia, co któraś klatka jest brana do nowego materiału, a reszta przeskakiwana? Czyli powstaje taki jakiś kastrat video?

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>