Konwertuj plik wideo MOV zakodowany jako `qtrle` w systemie Windows za pomocą FFMPEG

0

Pobrałem najnowszą wersję FFMPEG dla systemu Windows (wersja 3.2.4).

Chciałem go użyć do konwersji pliku MOV zawierającego qtrlenieskompresowane wideo.

Film można pobrać pod tym linkiem - https://www.sendspace.com/file/qjjkhj .

Mogę oglądać wideo w VLC Media Player, ale kiedy próbuję przekonwertować je w VLC na dowolny format wideo, wyjściowy plik wideo jest nieprawidłowy.

Próbowałem także użyć FFMPEG, używając następującego polecenia - ffmpeg -i DL126H.mov -c:v copy VideoClip0002.mp4. Jednak wynik był następujący: [mp4 @ 00000000026744e0] Could not find tag for codecqtrle in stream #0, codec not currently supported in container Could not write header for output file #0 (incorrect codec parameters ?): Invalid argumentStream mapping:.

Próbowałem również następujących - ffmpeg -i DL126H.mov -c:v mpeg2video -b 16M out.mpgjednak wyjście, podobnie jak w przypadku VLC, było niepoprawnym plikiem wideo.

Chciałbym więc pomóc w:

  1. Konwertujesz do formatu przyjaznego dla systemu Windows (o wysokiej jakości)?
  2. Zmień kontener na format działający w systemie Windows (bez ponownego kodowania).
  3. Konwertuj na poprawne MPEG2 ( .mpg) o wysokiej przepływności.

Dziękuję Ci.

Royi
źródło

Odpowiedzi:

3

Składnia jest prosta

ffmpeg -i DL126H.mov -pix_fmt yuv420p VideoClip0002.mp4

Spowoduje to kodowanie przy użyciu domyślnych parametrów, tj. Przy użyciu libx264 w CRF 23 i AAC przy 128 kb / s.

Aby użyć niestandardowych parametrów, takich jak lepsza jakość wideo, użyj

ffmpeg -i DL126H.mov -crf 18 -pix_fmt yuv420p VideoClip0002.mp4

Pozwoli to zachować większą jakość źródła, ale większy plik

W przypadku FFmpeg kompilacja „release” nigdy nie jest najnowszą wersją. Zawsze wybieraj kompilację nightly / snapshot / git.


Jeśli chcesz zakodować do MPEG-2, użyj

ffmpeg -i DL126H.mov -c:v mpeg2video -b:v 16M -bufsize 30M -maxrate 30M -pix_fmt yuv420p VideoClip0002.mp4

Specyfikacja MPEG-2 została zaprojektowana podczas dni wideo SD, a jej ustawienia domyślne nie są odpowiednie dla wideo HD. Kilka z nich trzeba ręcznie zastąpić. Wynik gra dla mnie w WMP12.

Gyan
źródło
Czy możesz wyjaśnić, co zrobiłeś? Co jeśli chcę zakodować jako MPEG2? Co powiesz na zmianę kontenera na MP4?
Royi
1
FFmpeg nie obsługuje zapisu qtrledo MP4, więc nie jest to możliwe. Moje pierwsze polecenie (formularza ffmpeg -i input output) konwertuje dane wejściowe na dane wyjściowe przy użyciu domyślnego wyboru kodeków i ich parametrów konwersji. Dodałem, -pix_fmt yuv420pponieważ jest to jedyny format pikseli obsługiwany przez odtwarzacze internetowe, a qtrle to RGB, dla którego ffmpeg domyślnie przyjmuje wartość yuv444p. Grywalny tylko w niektórych graczach. Aby zakodować w MPEG-2, użyj polecenia, ale dodaj pix_fmt.
Gyan
Próbowałem pix_fmtz moim poleceniem i wyjście wideo jest nieprawidłowe (MPEG2). Może MPEG2 wymaga innego formatu pikseli? Jaki jest domyślny format pikseli dla MPEG2? Dziękuję Ci.
Royi
To samo. Zobacz edycję odpowiedzi.
Gyan
Próbowałem twojej nowej linii poleceń. Naprawdę udało się usunąć problemy z uruchomieniem bufora ffmpeg. Dziękuję Ci! Nawiasem mówiąc, jak sprawić, by FFMPEG używał tylko pierwszych nramek?
Royi