Advies nodig ivm met hosten van videos

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Momenteel heb ik een goedlopende website waar ik wekelijks een aantal videos uploadt die de bezoekers van mijn website kunnen bekijken. De helft van de bezoekers komen uit Noord Amerika en de rest zijn verspreid (waarvan een groot deel wel uit Europa).

Nu is het zo dat ik mijn videos altijd zelf converteer en die vervolgens uploadt op een shared hosting site (Servage.net) waarna ik het inlaad in JW FLV op een andere server. De videos worden geupload in FLV formaat. Dit werkt tot op heden goed, maar ik wil de videos in een hoger kwaliteit uploaden en ik wil ook dat de videos via diverse platforms kunnen worden bekijken (mobiel).

Wat ik graag wil weten is wat jullie mij adviseren te doen kwa serverstructuur? Ik ben een aantal streaming providers tegengekomen zoals StreamZilla, maar aangezien ik gemiddeld 4-5TB per maand zal gaan verbruiken aan dataverkeer zal dat behoorlijk duur uitkomen daar.

Een andere optie zou kunnen zijn dat ik een server huur in Amerika bij bijv 100tb.com en daar vervolgens WOWZA op installeer. Ik heb geen ervaring met WOWZA maar ik heb er veel positieve verhalen over gelezen.

In feite is het enige wat ik wil een plek waar ik de videos op kan slaan, waarna deze automatisch worden omgezet in verschillende formaten.

Acties:
  • 0 Henk 'm!

  • Flard
  • Registratie: Februari 2001
  • Laatst online: 08:28
Afhankelijk van hoe "handig" je bent kun je of helemaal zelf aan de slag gaan (ffmpeg valt vrij makkelijk aan te roepen en kun je zo gebruiken om je verschillende formaten te laten genereren).

Wowza is een compleet platform wat dit al voor je doet, en heeft ook mooi streaming/buffering functionaliteiten. Zo kun je dan ook gemakkelijk seeken in een video, en bijvoorbeeld een HD en SD versie gebruiken. Ook is de hele software gewoon echt gemaakt en geoptimaliseerd voor video hosting/streaming.
Een licentie hiervoor kost uiteraard wel geld, maar dan ben je wel in een keer klaar.

Een kant en klare host kost dan wel een hoop geld, maar daar staat dan ook tegenover dat je meteen klaar bent, en eigenlijk altijd support hebt. Ook zorgen die providers goed voor de formaten, dus als over x jaar "HD+" een populair formaat wordt (fictief), dan krijg je dat bij zo'n providers dan meestal automatisch erbij. Heb je dan geen omkijken meer naar.

Eventueel zou je ook nog kunnen zoeken naar (open source) CMSsen met videofunctionaliteit. Ik heb wel eens gehoord van Kaltura, wat je bijvoorbeeld gratis op kunt zetten. Maar daar heb ik verder geen ervaring mee, dus kan niet echt zeggen of het een oplossing is voor je situatie).

Acties:
  • 0 Henk 'm!

  • donny007
  • Registratie: Januari 2009
  • Laatst online: 06-08 07:29

donny007

Try the Nether!

Is YouTube geen optie? Dan heb je meteen het hele smartphone en conversie verhaal opgelost, YouTube wordt erg vaak professioneel ingezet voor dit soort toepassingen....

/dev/null


Acties:
  • 0 Henk 'm!

  • Robinski
  • Registratie: September 2000
  • Laatst online: 12-07 19:39

Robinski

A.K.A. RHarmsen

Heb er wel niet heel veel verstand van, maar waarom geen gebruik maken van YouTube?


edit:
Spuit11

[ Voor 10% gewijzigd door Robinski op 01-08-2011 10:54 ]

10xAXItec AC-265P = 2,650kWp @ SolarEdge SE2200 - PVOutput


Acties:
  • 0 Henk 'm!

  • Willem
  • Registratie: Februari 2001
  • Laatst online: 23-07 16:40
Vimeo of gewoon simpelweg uitbesteden? Schaamteloze spam (klant van me): StreamOne.
Die zijn gespecialiseerd in het faciliteren van dit soort projecten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
YouTube is inderdaad een perfecte oplossing, maar ik heb vaker een waarschuwing en tijdelijke account ban gehad vanwege copyright claims die door iedereen ingediend kunnen worden. Aangezien ik praat over duizenden videos heb ik daar geen zin in.

Acties:
  • 0 Henk 'm!

  • Robinski
  • Registratie: September 2000
  • Laatst online: 12-07 19:39

Robinski

A.K.A. RHarmsen

Verwijderd schreef op maandag 01 augustus 2011 @ 12:54:
YouTube is inderdaad een perfecte oplossing, maar ik heb vaker een waarschuwing en tijdelijke account ban gehad vanwege copyright claims die door iedereen ingediend kunnen worden. Aangezien ik praat over duizenden videos heb ik daar geen zin in.
Wat voor video's zijn het dan?
Wat voor copyright claims zijn het?

Misschien dat je daar zelf nog iets mee/aan kunt doen om dit te minimaliseren.

10xAXItec AC-265P = 2,650kWp @ SolarEdge SE2200 - PVOutput


Acties:
  • 0 Henk 'm!

  • donny007
  • Registratie: Januari 2009
  • Laatst online: 06-08 07:29

donny007

Try the Nether!

Bij iedere hoster heb je last van copyright claims (anders klaagt de rechthebbende je als persoon aan als je het te bont maakt), als je copyrighted materiaal gebruikt zonder toestemming van de rechthebbende kun je het sowieso nergens (legaal) uploaden.

/dev/null


Acties:
  • 0 Henk 'm!

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 07-07 15:40
Robinski schreef op maandag 01 augustus 2011 @ 14:20:
[...]

Wat voor video's zijn het dan?
Wat voor copyright claims zijn het?

Misschien dat je daar zelf nog iets mee/aan kunt doen om dit te minimaliseren.
Zie Irangoals.com

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 11:37
Persoonlijk zou ik gaan kijken naar een Pro account bij Vimeo. Kost je een paar tientjes per jaar, maar je kunt er een hele hoop data kwijt.

Het enige waar je inderdaad voor op moet letten is copyright claims. Maar dat zal niet snel voorkomen als je gewoon zelf content maakt :).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Lol heb je mijn gebruikersnaam lopen Googlen? :P

Anyways het gaat om Iraanse voetbal videos die ik zelf opneem. In Iran is er geen copyright dus videos van de Iraanse competitie kan ik gewoon vrij verspreiden omdat daarvoor geen rechten worden verkocht.

Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 12-08 09:19

krvabo

MATERIALISE!

Videohosting, en vooral het converteren, is een vak apart inderdaad.

Converteren:
De meest goedkope manier is inderdaad ffmpeg, maar dit is ook meteen de meest foutgevoelige. Tenzij het echt om weinig video's gaat, kun je het outsourcen naar een SaaS-converter (Software as a Service) zoals Zencoder. Toen ik zelf bezig was met dit soort zaken was dit een vrij goedkope en vooral goede encoder. Je zet een video online en geeft de locatie op aan Zencoder. Hierbij krijg je dan ook nog extra mogelijkheden zoals thumbnails (meerdere, of zelfs 10 thumbnails + 'poster thumbnail', zodat je een leuke previewimage en een animated gif preview hebt). Anyway, je maakt dan met bijvoorbeeld php het volgende:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
$aRequest = array(
            'api_key' => ENCODING_APIKEY,
            'input' => 'http://'.$_SERVER['HTTP_HOST'].'/encode/'.$sFilename,
            'region' => 'europe',
            'outputs' => array(
                array(
                    'label' => 'Universal_Smartphone',
                    'video_codec' => 'h264',
                    'base_url' => ENCODING_OUTPUT_BASEURL,
                    'filename' => $sFileWithoutExt.'.mp4',
                    'size' => '480x320',
                    'video_bitrate' => 1500,
                    'keyframe_interval' => 50,
                    'notifications' => array(
                        array(
                            'format' => 'json',
                            'url' => ENCODING_NOTIFICATION_URL
                        )
                    ),
                    'watermark' => array(
                        'url' => ENCODING_WATERMARK_URL,
                        'x' => '-20',
                        'y' => '4'
                    )
                ),
                array(
                    'label' => 'Legacy_Mobile',
                    'format' => '3gp',
                    'video_codec' => 'mpeg4',
                    'base_url' => ENCODING_OUTPUT_BASEURL,
                    'filename' => $sFileWithoutExt.'.3gp',
                    'size' => '320x240',
                    'aspect_mode' => 'pad',
                    'frame_rate' => 15,
                    'upscale' => true,
                    'video_bitrate' => 192,
                    'keyframe_interval' => 50,
                    'bitrate_cap' => 192,
                    'audio_bitrate' => 24,
                    'audio_channels' => 1,
                    'audio_sample_rate' => 16000,
                    'notifications' => array(
                        array(
                            'format' => 'json',
                            'url' => ENCODING_NOTIFICATION_URL
                        )
                    ),
                    'watermark' => array(
                        'url' => ENCODING_WATERMARK_URL,
                        'x' => '-20',
                        'y' => '4'
                    )
                ),

                array(
                    'label' => 'Flash',
                    'base_url' => ENCODING_OUTPUT_BASEURL,
                    'filename' => $sFileWithoutExt.'.flv',
                    'keyframe_interval' => 50,
                    'video_codec' => 'vp6',
                    'audio_codec' => 'aac',
                    'audio_bitrate'=> 160,
                    'width' => 640,
                    'notifications' => array(
                        array(
                            'format' => 'json',
                            'url' => ENCODING_NOTIFICATION_URL
                        )
                    ),
                    'thumbnails' => array(
                         array(
                            'base_url' => ENCODING_OUTPUT_BASEURL,
                            'number' => 16,
                            'size' => '160x120',
                            'prefix' => 'thumb_'.$sFileWithoutExt
                        ),
                         array(
                            'base_url' => ENCODING_OUTPUT_BASEURL,
                            'number' => 1,
                            'size' => '640x480',
                            'prefix' => 'poster_'.$sFileWithoutExt,
                            'format' => 'jpg'
                        )
                    ),
                    'watermark' => array(
                        'url' => ENCODING_WATERMARK_URL,
                        'x' => '-20',
                        'y' => '4'
                    )
                )
            )
        );

Hiermee vang je al een groot gedeelte van je gebruikers af, maar je betaald wel 3x voor je video. Zencoder vraagt geen geld voor 'incoming', zodat je de best mogelijke kwaliteit kan opsturen. Je kunt deze settings uiteraard ook gebruiken als je handmatig wil converteren, een drietal conversies zou dan genoeg moeten zijn.
Zoals je ziet kun je een notify url-locatie opgeven, zodra je video klaar is krijg je een seintje welke conversie klaar is, en dit kun je dan met bijvoorbeeld php afvangen en de video via ftp laten uploaden op je site. Zo heb je er dus verder geen omkijken meer naar. Het nadeel is wel dat je inlogcredentials van een ftp-account plaintext meestuurt met het initiele request.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
        /*
         * Ignore user abort
         */

        ignore_user_abort(true);

        // output message and flush

        ob_start();

        // hier kan je dan wat echo'en -> 
        // komt in je zencoder admin panel te staan, niet perse nodig

        /*
         * Send headers so we can end the connection
         */

        header("Connection: close\r\n");
        header("Content-Encoding: none\r\n");

        header("Content-Length: " .ob_get_length());

        // be sure to flush after doing your business
        ob_end_flush();
        ob_end_clean();

        session_write_close();


        /*
         * Zencoder has a pretty small timeout range. 
To counter this we just say we received it, close the connection and handle the rest.
         */
        


        /*
         * Parse response
         */

        $aResponse = (Array)json_decode(trim(file_get_contents('php://input')), true);

        /*
 inputarray(2) {
  ["job"]=>
  array(3) {
    ["test"]=>  bool(true)
    ["state"]=> string(8) "finished"
    ["id"]=>    int(305075)
  }
  ["output"]=>
  array(4) {
    ["url"]=>   string(47) "ftp://encoder:h$R&5q#F8fb2@HOSTNAME.COMOFIP/16.flv"   
    ["state"]=> string(8) "finished"
    ["label"]=> string(5) "Flash"
    ["id"]=>     int(393261)
  }
}
         */

Dit is code uit mijn project, dus wellicht dat je dan de code wat moet veranderen :)


Streaming / Hosting:
Je kunt dit op meerdere manieren doen. Als je een vps hebt, of dedicated/colocated dan kun je zelf software installeren die dit voor je doet. Ikzelf ben bezig geweest met onder andere Red5. Dit pakket wordt niet enorm vaak meer geupdate, maar ik zie dat begin dit jaar nog een update is geweest. Je kunt ook kiezen voor Streaming-software van Apple, maar daar betaal je wel de hoofdprijs voor.
Voor FLV had ik gekozen voor Lighttpd met mod_flv_streaming en er is ook een mod_mp4_streaming, maar die kost wat meer moeite om werkend te krijgen. Hierin zit wat basic stuff zoals throttling en met mod_secdownload kun je tijdelijke urls naar deze files maken. Ze zijn dan bijvoorbeeld hooguit een uur te linken voordat de url niet meer werkt.

Er zijn zeer veel manieren om te bereiken wat je wil, maar als je er geen geld aan wil uitgeven kan het een vrij saaie bezigheid zijn ;)

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik gebruik zelf VIMEO+ HD en ben daar zéér content over, je kunt je hele speler
zelf indelen, dus bepalen HOE jij wilt dat het eruit komt te zien, zonder irritante
VIMEO player embleem etct ec.
Pagina: 1