Użycie ffmpeg do zakodowania surowego wideo do formatu H.264

9

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:

  1. Czy istnieje jakaś zależność między tym libx264, którego potrzebuje ffmpeg, a programem x264?
  2. Jak zainstalować libx264 i zmusić ffmpeg do użycia tego, aby umożliwić mi kodowanie wideo do formatu H.264?
złoty środek
źródło
Co z twoim poprzednim pytaniem, czy to nie zostało rozwiązane? Wykorzystanie ffmpeg do kodowania wideo do formatu kodeków H264
slhck,
@slhck - Dzięki, ale kiedy użyłem: - ffmpeg -s 352x240 -i 352x240_420.yuv -vcodec libx264 out.mp4. Dał błąd - „Nieznany koder 'libx264'”. Wszelkie dalsze wskazówki. Czy libx264 jest taki sam jak biblioteka x264 lub coś innego.
goldenmean
Jeśli chodzi o kompilowanie ffmpeg i x264 w systemie Linux, zobacz tutaj: ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
slhck

Odpowiedzi:

10

Po pierwsze, używane polecenia wyglądają niepoprawnie pod względem składniowym. Aby ffmpeg używał x264, musisz podać -c:v libx264argument.

Teraz, jeśli masz surowy plik YUV, musisz powiedzieć ffmpeg, który format pikseli, jaki rozmiar itp. Jest używany:

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 output.mp4

Zmień je zgodnie ze specyfikacjami pliku YUV. Sprawdź ffmpeg -pix_fmtslistę 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 .264pliku:

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 -f rawvideo output.264
slhck
źródło
-1

ffmpeg -f rawvideo -pix_fmt yuv420p -s: v 1920x1080 -r 23.976 -i raw_i420_1920_1080 -vcodec libx264 -f rawvideo output.264

-vcodecmówi, jakiego kodeka użyć. man ffmpegpomoże ci dowiedzieć się więcej.

Vishwanath Patil
źródło