Ne kadar iyi FFmpeg ölçeği ne?

1 Cevap php

Şu anda bir artırılmış gerçeklik projesi sunucu tarafında çalışıyorum. Bu http://www.livingsasquatch.com/ gibi bir çok şey. Ben kamerası video yakalamak için PHP / MySQL ve FFmpeg kullanarak. Flv bunu kodlayan ediyorum.

Temelde Flaş. Jpg görüntülerin uzun bir dizi olarak videoyu yükler. PHP, daha sonra bu görüntüleri alır birkaç küçük resimler üretir ve tek. Flv dosyasına dönüştürür FFmpeg'den yoluyla geçer.

İşte FFmpeg kodu:

$ffmpeg_images = $image_directory.'/image%d.jpg';

@unlink($video_directory."/$video_id.flv"); 
$ffmpeg_video = $video_directory."/$video_id.flv";
$ffmpeg_string = FFMPEG_PATH." -f image2 -i $ffmpeg_images -f flv $ffmpeg_video";

@exec($ffmpeg_string);

Bu benim testlerde güzel çalışıyor gibi görünüyor, ama ölçek nasıl yaparız bilmiyoruz. Bu FFmpeg kullanarak benim ilk kez bu yana bu şekilde kodlama video onun diz sunucu getirecek, ben bilmiyorum.

Herkes bir yüksek trafik sitede FFmpeg'den deneyimi var mı?

. Flv dönüşüm Webcam bu tür işleme daha iyi bir yolu var mı?

FFmpeg yüksek trafik sitede kullanılan herhangi örnekleri var mı?

Zaman ayırdığınız için teşekkürler!

1 Cevap

Sizin temel iş akışı bana aklı başında görünüyor. Ben diğer yaklaşımlar vardır eminim. Sadece kurşun puan bir dizi soru cevap:

  • FFmpeg is a video encoding leader; Muhtemelen 'the' lider. Bunu kendisi bir sorun olma konusunda endişe değil, nasıl vb, kendi parametreleri kullanıyor hakkında daha fazla
  • Sizin yukarıdaki komut dosyasının FFmpeg parametreleri saf varsayılan vardır. Farklı parametreler denemek eğer daha iyi, daha verimli bir performans alabilirsiniz. Birçok vardır. You should to spend some time tuning the FFmpeg parameters.
  • Eğer hacim herhangi bir tür olacak iseniz Video encoding is inherently very CPU intensive., o zaman bunun için planın var olacak. Yani, bazı testler çalışan bazı ölçümleri kayıt ve projeksiyonlar yapmak anlamına gelir. Ayrıca donanım yakından ilgilenerek demektir. Örn: Yeni Intel Core i7 işlemci kesinlikle video kodlama at kayalar - multiple kat daha hızlı bir MHz * çekirdek sayısı eşdeğer Core 2 daha.
  • 100% kullanımı saptanmış bile bu sunucu Snappy tutacak, vb web sunucu daha kick off the FFMpeg jobs at as lower priority processes mümkün olmalıdır.
  • Eğer gerçekten hacimli trafik işlemek için gidiyoruz eğer, o zaman moving the FFmpeg work to auxiliary, dedicated encoding servers. trafik bağlı olarak, hatta bir kodlama çiftliği güçlü öneri gerekebilir olacaktır.

Özetle, bu soruları daha 'system architecture' ve 'encoder parameter tuning' ilişkilidir geliyor bana.

Orada büyük ölçüde sunucu tarafı kodlama yükünü azaltacağını ben aklınıza gelebilecek tek bir başka temelde farklı bir yaklaşım olduğunu ve istemci tarafında her şeyi işlemek olacaktır. Ama nedense ben zaten bu yaklaşımı indirimli düşünüyorum.