Ham videoyu H.264 formatına kodlamak için ffmpeg kullanma


10

Bir Ubuntu 10.04'te, aşağıdaki ffmpeg komutlarını kullanarak bir H.264 kodlu videoya bir ham video (YUV formatı) kodlamaya çalışıyorum:

ffmpeg -i input.mp4 output.h264

ama bir hata mesajı alıyorum

Çıkış akışı # için desteklenmeyen codec bileşeni

Sonra bu seçeneği denediğimde:

ffmpeg -i input.mp4 -formats h264 output.h264

hala kodlamıyor.

Şimdi ffmpeg'in H.264 biçimine kodlamak için libx264 kullandığını anladım. Şimdi bu Ubuntu üzerinde yüklü x264 - hızlı H.264 kodlayıcı var.

Sorularım:

  1. Ffmpeg'nin ihtiyaç duyduğu bu libx264 ile x264 programı arasında herhangi bir ilişki var mı?
  2. Libx264'ü nasıl kurarım ve ffmpeg'in bir videoyu H.264 formatına kodlamama izin vermek için bunu nasıl kullanırım?


@slhck - Teşekkürler, ancak Kullandığımda: - ffmpeg -s 352x240 -i 352x240_420.yuv -vcodec libx264 out.mp4. Hata verdi - "Bilinmeyen kodlayıcı 'libx264'". Başka işaretçiler. Libx264, x264 kitaplığı veya başka bir şeyle aynıdır.
goldenmean

Linux'ta ffmpeg ve x264 derleme ile ilgili olarak, buraya bakın: ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
slhck

Yanıtlar:


11

Her şeyden önce, kullandığınız komutlar sözdizimsel olarak yanlış görünüyor. Ffmpeg'in x264 kullanmasını sağlamak için -c:v libx264argümanı sağlamanız gerekir .

Şimdi, ham bir YUV dosyanız varsa, ffmpeg'e hangi piksel biçimini, hangi boyutun vb. Kullanıldığını söylemeniz gerekir:

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

Bunları YUV dosyanızın özelliklerine göre değiştirin. Göz at ffmpeg -pix_fmtsdesteklenen piksel biçimlerinin listesi için. fourcc.org da bu konuda iyi bir kaynaktır.

Bir .264dosyada yalnızca ham H.264 bit akışını istiyorsanız :

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

-1

ffmpeg -f rawvideo -pix_fmt yuv420p -s: v 1920x1080 -r 23.976 -i raw_i420_1920_1080 -vcodec libx264 -f rawvideo çıkışı.

-vcodechangi codec bileşenini kullanacağını söyler. man ffmpegdaha fazla öğrenmenize yardımcı olacak.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.