2017-08-02 65 views
6

Próbuję przekonwertować plik wideo (MP4, yuv420p) z 30 fps do 24 fps. Liczba klatek jest poprawna, więc moje wyniki powinny zmienić się z 20 minut z 30 fps na 25 minut przy 24 fps. Wszystko inne powinno pozostać takie samo.Korzystanie ffmpeg zmianie framerate

spróbować, jak mógłbym wszystko próbuję z ffmpeg konwertuje liczbę klatek na sekundę, ale zmienia liczbę klatek, aby zachować ten sam czas trwania lub zmienia czas bez zmiany framerate.

Tak więc zazwyczaj próbowałem takich rzeczy;

ffmpeg -y -r 30 -i seeing_noaudio.mp4 -r 24 seeing.mp4 

(Robię to w systemie Windows, ale normalnie byłby na Linuksie). To konwertuje liczbę klatek na sekundę, ale zmniejsza klatki, więc całkowity czas trwania pozostaje niezmieniony.

Albo Próbowałem

ffmpeg -y -i seeing_noaudio.mp4 -filter:v "setpts=1.25*PTS" seeing.mp4 

która zmienia czas, ale nie framerate.

pewnością byłbym w stanie to zrobić za pomocą jednego polecenia ffmpeg bez konieczności przekodowywać lub nawet, jak niektórzy ludzie zaproponował powrót do oryginalnych surowców ramek.

Pomóżcie proszę

Odpowiedz

10

Z ponownego kodowania:

ffmpeg -y -i seeing_noaudio.mp4 -vf "setpts=1.25*PTS" -r 24 seeing.mp4 

bez ponownego kodowania:

Pierwszy krok - wideo ekstrakt surowego bitstream

ffmpeg -y -i seeing_noaudio.mp4 -c copy -f h264 seeing_noaudio.h264 

remux z nowym framerate

ffmpeg -y -r 24 -i seeing_noaudio.h264 -c copy seeing.mp4 
+0

Dzięki za to. Pierwszy z nich pracował, ale drugi nie wraca się komunikat o błędzie w rodzaju „nie można zapisać nagłówek pliku wyjściowego # 0 (nieprawidłowych parametrów kodeka): Invalid argument”. Nie mam pojęcia, co to znaczy, ale pierwsza zadziałała. –

+0

Wygląda na to kodek wideo H.264 nie jest. Który to jest? – Mulvya