PHP, Daemons e Multimedia             Guilherme Blanco




         PHP, Daemons e Multimedia




         PHP Conference Brazil 2009
Doctrine 2.0: A evolução da persistência em PHP   Benjamin Eberlei, Guilherme Blanco, Jonathan Wage & Roman Borschel




                              Guilherme Blanco
•    Desenvolvedor há 10+ anos
•    Evangelista de projetos OS
•    Trabalhar para Naspers/MIH
•    Contribui para...
•    ...Doctrine
•    ...Zend Framework
•    ...Symfony
•    ...PHP
•    ...etc
         PHP Conference Brazil 2009                                                          www.doctrine-project.org
PHP, Daemons e Multimedia                      Guilherme Blanco




                            Guilherme Blanco

 • http://www.twitter.com/guilhermeblanco

 • http://www.facebook.com/guilhermeblanco




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                      Guilherme Blanco




                                      Agenda
 •   Requisitos
 •   Configuração
 •   Queue System
 •   Daemon
 •   REST




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                   Guilherme Blanco




                               Requisitos
 • Tratamento de aúdio, vídeo e imagem
     – Ffmpeg + x264
     – Imagemagick

 • 100% distribuído

 • Suporte à geração de thumbnails de vídeos

 • Anamorfismo

         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                                           Guilherme Blanco




                            Configuração
 • Audio


 encoder.profiles.audio.app_audio.options.overwrite        =   true
 encoder.profiles.audio.app_audio.output.0.resourceType    =   audio
 encoder.profiles.audio.app_audio.output.0.format          =   mp3
 encoder.profiles.audio.app_audio.output.0.fileExtension   =   mp3
 encoder.profiles.audio.app_audio.output.0.audioRate       =   44100
 encoder.profiles.audio.app_audio.output.0.audioBitrate    =   128k
 encoder.profiles.audio.app_audio.output.0.audioChannel    =   2
 encoder.profiles.audio.app_audio.output.0.audioCodec      =   libmp3lame




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                                                    Guilherme Blanco




                            Configuração
 • Imagem

     encoder.profiles.image.app_image.options.overwrite        =   true
     encoder.profiles.image.app_image.output.0.resourceType    =   image
     encoder.profiles.image.app_image.output.0.anamorphic      =   320x240
     encoder.profiles.image.app_image.output.0.boxing          =   false
     encoder.profiles.image.app_image.output.0.fileExtension   =   jpg
     encoder.profiles.image.app_image.output.1.resourceType    =   image
     encoder.profiles.image.app_image.output.1.anamorphic      =   46x46
     encoder.profiles.image.app_image.output.1.boxing          =   false
     encoder.profiles.image.app_image.output.1.fileExtension   =   jpg
     encoder.profiles.image.app_image.output.2.resourceType    =   image
     encoder.profiles.image.app_image.output.2.anamorphic      =   640x480
     encoder.profiles.image.app_image.output.2.boxing          =   false
     encoder.profiles.image.app_image.output.2.fileExtension   =   jpg




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                                                                 Guilherme Blanco




                              Configuração
            encoder.profiles.video.blobthis_video.options.overwrite        =   true
            encoder.profiles.video.blobthis_video.output.0.resourceType    =   video
            encoder.profiles.video.blobthis_video.output.0.anamorphic      =   320x240
            encoder.profiles.video.blobthis_video.output.0.boxing          =   true
            encoder.profiles.video.blobthis_video.output.0.format          =   flv
            encoder.profiles.video.blobthis_video.output.0.fileExtension   =   flv
            encoder.profiles.video.blobthis_video.output.0.codec           =   libx264
            encoder.profiles.video.blobthis_video.output.0.preset          =   normal
            encoder.profiles.video.blobthis_video.output.0.crf             =   24
            encoder.profiles.video.blobthis_video.output.0.padColor        =   000000
            encoder.profiles.video.blobthis_video.output.0.audioRate       =   22050
            encoder.profiles.video.blobthis_video.output.0.audioBitrate    =   96k
            encoder.profiles.video.blobthis_video.output.0.audioCodec      =   libfaac
            encoder.profiles.video.blobthis_video.output.1.resourceType    =   image
            encoder.profiles.video.blobthis_video.output.1.format          =   mjpeg
            encoder.profiles.video.blobthis_video.output.1.fileExtension   =   jpg
            encoder.profiles.video.blobthis_video.output.1.anamorphic      =   320x240
            encoder.profiles.video.blobthis_video.output.1.boxing          =   true
            encoder.profiles.video.blobthis_video.output.1.rate            =   1
            encoder.profiles.video.blobthis_video.output.1.codec           =   mjpeg
            encoder.profiles.video.blobthis_video.output.1.padColor        =   000000
            encoder.profiles.video.blobthis_video.output.1.seekTime        =   00:00:01
            encoder.profiles.video.blobthis_video.output.1.audio           =   false

         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                  Guilherme Blanco




                            Queue System
 • Dropr

 • Amazon SQS

 • ...




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                  Guilherme Blanco




                                  Daemon
 • Manager

 • Workers




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                    Guilherme Blanco




                                      REST
 •   PUT
 •   GET
 •   DELETE
 •   HEAD




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                  Guilherme Blanco




                            Perguntas???




         PHP Conference Brazil 2009
PHP, Daemons e Multimedia                                      Guilherme Blanco




                            Guilherme Blanco
                            guilhermeblanco@php.net
                            +55 16 9215-8480

                            Twitter: @guilhermeblanco
                            MSN: guilhermeblanco@hotmail.com




         PHP Conference Brazil 2009

PHP, Daemons e Multimedia

  • 1.
    PHP, Daemons eMultimedia Guilherme Blanco PHP, Daemons e Multimedia PHP Conference Brazil 2009
  • 2.
    Doctrine 2.0: Aevolução da persistência em PHP Benjamin Eberlei, Guilherme Blanco, Jonathan Wage & Roman Borschel Guilherme Blanco • Desenvolvedor há 10+ anos • Evangelista de projetos OS • Trabalhar para Naspers/MIH • Contribui para... • ...Doctrine • ...Zend Framework • ...Symfony • ...PHP • ...etc PHP Conference Brazil 2009 www.doctrine-project.org
  • 3.
    PHP, Daemons eMultimedia Guilherme Blanco Guilherme Blanco • http://www.twitter.com/guilhermeblanco • http://www.facebook.com/guilhermeblanco PHP Conference Brazil 2009
  • 4.
    PHP, Daemons eMultimedia Guilherme Blanco Agenda • Requisitos • Configuração • Queue System • Daemon • REST PHP Conference Brazil 2009
  • 5.
    PHP, Daemons eMultimedia Guilherme Blanco Requisitos • Tratamento de aúdio, vídeo e imagem – Ffmpeg + x264 – Imagemagick • 100% distribuído • Suporte à geração de thumbnails de vídeos • Anamorfismo PHP Conference Brazil 2009
  • 6.
    PHP, Daemons eMultimedia Guilherme Blanco Configuração • Audio encoder.profiles.audio.app_audio.options.overwrite = true encoder.profiles.audio.app_audio.output.0.resourceType = audio encoder.profiles.audio.app_audio.output.0.format = mp3 encoder.profiles.audio.app_audio.output.0.fileExtension = mp3 encoder.profiles.audio.app_audio.output.0.audioRate = 44100 encoder.profiles.audio.app_audio.output.0.audioBitrate = 128k encoder.profiles.audio.app_audio.output.0.audioChannel = 2 encoder.profiles.audio.app_audio.output.0.audioCodec = libmp3lame PHP Conference Brazil 2009
  • 7.
    PHP, Daemons eMultimedia Guilherme Blanco Configuração • Imagem encoder.profiles.image.app_image.options.overwrite = true encoder.profiles.image.app_image.output.0.resourceType = image encoder.profiles.image.app_image.output.0.anamorphic = 320x240 encoder.profiles.image.app_image.output.0.boxing = false encoder.profiles.image.app_image.output.0.fileExtension = jpg encoder.profiles.image.app_image.output.1.resourceType = image encoder.profiles.image.app_image.output.1.anamorphic = 46x46 encoder.profiles.image.app_image.output.1.boxing = false encoder.profiles.image.app_image.output.1.fileExtension = jpg encoder.profiles.image.app_image.output.2.resourceType = image encoder.profiles.image.app_image.output.2.anamorphic = 640x480 encoder.profiles.image.app_image.output.2.boxing = false encoder.profiles.image.app_image.output.2.fileExtension = jpg PHP Conference Brazil 2009
  • 8.
    PHP, Daemons eMultimedia Guilherme Blanco Configuração encoder.profiles.video.blobthis_video.options.overwrite = true encoder.profiles.video.blobthis_video.output.0.resourceType = video encoder.profiles.video.blobthis_video.output.0.anamorphic = 320x240 encoder.profiles.video.blobthis_video.output.0.boxing = true encoder.profiles.video.blobthis_video.output.0.format = flv encoder.profiles.video.blobthis_video.output.0.fileExtension = flv encoder.profiles.video.blobthis_video.output.0.codec = libx264 encoder.profiles.video.blobthis_video.output.0.preset = normal encoder.profiles.video.blobthis_video.output.0.crf = 24 encoder.profiles.video.blobthis_video.output.0.padColor = 000000 encoder.profiles.video.blobthis_video.output.0.audioRate = 22050 encoder.profiles.video.blobthis_video.output.0.audioBitrate = 96k encoder.profiles.video.blobthis_video.output.0.audioCodec = libfaac encoder.profiles.video.blobthis_video.output.1.resourceType = image encoder.profiles.video.blobthis_video.output.1.format = mjpeg encoder.profiles.video.blobthis_video.output.1.fileExtension = jpg encoder.profiles.video.blobthis_video.output.1.anamorphic = 320x240 encoder.profiles.video.blobthis_video.output.1.boxing = true encoder.profiles.video.blobthis_video.output.1.rate = 1 encoder.profiles.video.blobthis_video.output.1.codec = mjpeg encoder.profiles.video.blobthis_video.output.1.padColor = 000000 encoder.profiles.video.blobthis_video.output.1.seekTime = 00:00:01 encoder.profiles.video.blobthis_video.output.1.audio = false PHP Conference Brazil 2009
  • 9.
    PHP, Daemons eMultimedia Guilherme Blanco Queue System • Dropr • Amazon SQS • ... PHP Conference Brazil 2009
  • 10.
    PHP, Daemons eMultimedia Guilherme Blanco Daemon • Manager • Workers PHP Conference Brazil 2009
  • 11.
    PHP, Daemons eMultimedia Guilherme Blanco REST • PUT • GET • DELETE • HEAD PHP Conference Brazil 2009
  • 12.
    PHP, Daemons eMultimedia Guilherme Blanco Perguntas??? PHP Conference Brazil 2009
  • 13.
    PHP, Daemons eMultimedia Guilherme Blanco Guilherme Blanco guilhermeblanco@php.net +55 16 9215-8480 Twitter: @guilhermeblanco MSN: guilhermeblanco@hotmail.com PHP Conference Brazil 2009