2011-08-07 11 views

Odpowiedz

19

Spróbuj tego:

./ffmpeg -i video.mp4 -vf "scale=640:ih*640/iw, crop=640:480" -f mpegts udp://127.0.0.1:1234 

Powyższy kod najpierw skalowanie wideo do 640 i utrzymać wysokość współczynnika proporcji, następnie przyciąć do 640x480.

+1

W jaki sposób uprawa wybiera części do przycięcia? Czy gwarantowane jest, aby zawsze brać dokładny środek '640x480' wideo? – user779159

0

rzeczywiście trzeba wymienić ow i oh z numerami, reprezentujących szerokość i wysokość do skalowania wideo do, odpowiednio.

+0

muszę zmienić okno przycinania dynamicznie (mam zrobił kilka zmian na ffmpeg) i chciałbym go skalować zgodnie z rzeczywistym oknem przyciętym. Jak rozumiem, wartości "ow" i "o" powinny wykonać zadanie, prawda? –

+0

Nie. Musisz wpisać liczby, w których docs mówią "ow" i "oh". –

+0

Zamiast ow i oh (które nie są stałymi) można używać wyrażeń, które są stałe takie jak out_w i out_h. – BrainSlugs83

2

Zakładam dostajesz:

Error when evaluating the expression 'oh'. 
Maybe the expression for out_w:'ow' or for out_h:'oh' is self-referencing. 

Ponieważ spróbować ustawić wyjście S/do wyjścia S/?! Co chcesz zrobić, to

ffmpeg -i video.mp4 -vf "crop=640:480,scale=iw:ih" -f mpegts udp://127.0.0.1:1234 

Oznacza to, że ustawienie wyjścia w/h, co było szerokość wejścia (IW) i wysokość wejścia (IH).

Należy zauważyć, że wystąpi błąd, jeśli źródło wideo jest mniejsze niż to, do którego próbujesz przyciąć (640: 480). Możesz użyć składni wyrażeń ffmpeg, aby najpierw sprawdzić, czy plon/skala jest niezbędna, aby uniknąć tego błędu.