W systemie Ubuntu 10.04 próbuję zakodować nieprzetworzone wideo (format YUV) do wideo zakodowanego w formacie H.264 przy użyciu poniższych poleceń ffmpeg:
ffmpeg -i input.mp4 output.h264
ale pojawia się komunikat o błędzie
Nieobsługiwany kodek dla strumienia wyjściowego # 0.0
Następnie, gdy wypróbuję tę opcję:
ffmpeg -i input.mp4 -formats h264 output.h264
nadal nie koduje.
Teraz zrozumiałem, że ffmpeg używa libx264 do kodowania do formatu H.264. Teraz mam pakiet x264 - szybki koder H.264 zainstalowany na tym Ubuntu.
Moje pytania:
- Czy istnieje jakaś zależność między tym libx264, którego potrzebuje ffmpeg, a programem x264?
- Jak zainstalować libx264 i zmusić ffmpeg do użycia tego, aby umożliwić mi kodowanie wideo do formatu H.264?
Odpowiedzi:
Po pierwsze, używane polecenia wyglądają niepoprawnie pod względem składniowym. Aby ffmpeg używał x264, musisz podać
-c:v libx264
argument.Teraz, jeśli masz surowy plik YUV, musisz powiedzieć ffmpeg, który format pikseli, jaki rozmiar itp. Jest używany:
Zmień je zgodnie ze specyfikacjami pliku YUV. Sprawdź
ffmpeg -pix_fmts
listę obsługiwanych formatów pikseli. fourcc.org jest również dobrym źródłem informacji na ten temat.Jeśli chcesz tylko surowy strumień bitów H.264 w
.264
pliku:źródło
-vcodec
mówi, jakiego kodeka użyć.man ffmpeg
pomoże ci dowiedzieć się więcej.źródło