1 Reply Latest reply: Nov 27, 2011 5:06 PM by nick.doyle RSS

    Can't Playback - 503 Errors

    nick.doyle

      This is my first time trying HTTP Dynamic Streaming end-to-end and it's not working.

      I packaged the content, but it looks like either the package is wrong (manifest or index) - or the Apache module is failing to give the required fragments.

       

      I successfully packaged media with:

      ./f4fpackager  --input-file=/var/www/html/video/tintin-orig/tintin-crop.mp4 --output-path=/var/www/html/video/hds/tintin --segment-duration=10

       

      This gave me the following files in output directory:

       

      4.0K tintin-crop.f4m

      15M tintin-cropSeg1.f4f

      4.0K tintin-cropSeg1.f4x

      12M tintin-cropSeg2.f4f

      4.0K tintin-cropSeg2.f4x

      80K tintin-cropSeg3.f4f

      4.0K tintin-cropSeg3.f4x

       

      (as an aside - I was surprised to see one f4x per segment; was expecting just one ... that's gonne be a whole lot more files in our system ...)


      I have installed Apache module and modified conf as follows:

       

      LoadModule f4fhttp_module /usr/lib64/httpd/modules/mod_f4fhttp.so

      ...

      <Location /hds>

              HttpStreamingEnabled true

              HttpStreamingContentPath /var/www/html/video/hds

      </Location>

       

      Restart server, and module seems to be fine (see later, I can get some fragments from it)

       

      I then load the Strobe demo, telling it src = tintin-crop.f4m

      Using Chrome dev tools I can see requests:

      tintin-cropSeg1-Frag1  -  HTTP 200 OK

      tintin-cropSeg1-Frag2  -  HTTP 200 OK

      tintin-cropSeg1-Frag3  -  HTTP 503 Service Unavailable

       

      Trying to retrieve any other fragments except those first two (e.g. tintin-cropSeg2-Frag1) yields the 503

      Looking at the files I got output from the packager, I would expect to have Frag1 (at least) available in Seg1-3

       

      Trying to use f4fpackager to get information:

       

      --sample-dump (with same input) shows 7 fragments for the expected duration (31 sec)

       

      Using --inspect-index to try to get info:

      (FYI the doc on --inspect-index is potentially misleading; it says "inspects the bootstrap box in an f4f file" when it's actually looking at the f4x?)

       

      $ f4fpackager --input-file=./tintin-cropSeg1.f4x --inspect-index

      afra:

        long ids: true

        long offsets: true

        entries:

        global entries:

        time = 0, segment = 1, fragment = 1, afra-offset = 74896, offset-from-afra = 0

        time = 5213, segment = 1, fragment = 2, afra-offset = 3462448, offset-from-afra = 0

       

       

      $ f4fpackager --input-file=./tintin-cropSeg2.f4x --inspect-index

      afra:

        long ids: true

        long offsets: true

        entries:

        global entries:

        time = 0, segment = 1, fragment = 1, afra-offset = 74896, offset-from-afra = 0

        time = 5213, segment = 1, fragment = 2, afra-offset = 3462448, offset-from-afra = 0

        time = 8842, segment = 1, fragment = 3, afra-offset = 6224551, offset-from-afra = 0

        time = 12000, segment = 1, fragment = 4, afra-offset = 18446744073709551615, offset-from-afra = 0

        time = 18059, segment = 2, fragment = 5, afra-offset = 74896, offset-from-afra = 0

        time = 22772, segment = 2, fragment = 6, afra-offset = 4718680, offset-from-afra = 0

        time = 24691, segment = 2, fragment = 7, afra-offset = 5755430, offset-from-afra = 0

       

       

      $ f4fpackager --input-file=./tintin-cropSeg3.f4x --inspect-index

      afra:

        long ids: true

        long offsets: true

        entries:

        global entries:

        time = 0, segment = 1, fragment = 1, afra-offset = 74896, offset-from-afra = 0

        time = 5213, segment = 1, fragment = 2, afra-offset = 3462448, offset-from-afra = 0

        time = 8842, segment = 1, fragment = 3, afra-offset = 6224551, offset-from-afra = 0

        time = 12000, segment = 1, fragment = 4, afra-offset = 18446744073709551615, offset-from-afra = 0

        time = 18059, segment = 2, fragment = 5, afra-offset = 74896, offset-from-afra = 0

        time = 22772, segment = 2, fragment = 6, afra-offset = 4718680, offset-from-afra = 0

        time = 24691, segment = 2, fragment = 7, afra-offset = 5755430, offset-from-afra = 0

       

      Which doesn't really make sense to me; from --sample-dump I would expect 7 fragments, split across mutiple segments (and, reinforced by the file names, my understanding is there is one segment per file right?) - in this case 3 segments, so something like

      seg1-frag1

      seg1-frag2

      seg1-frag3

      seg2-frag1

      seg2-frag2

      seg2-frag3

      seg3-frag1

      ?

       

      I guess I don't understand the relationships between f4vs, segments and fragments .... hopefully someone more familiar with this can see where the problem is.

      Anyway that's where I'm stuck.

      Can't dig into the Apache module because source is not available

      (speaking of which has anybody tried OpenHTTPStreamer? https://github.com/inventos/OpenHttpStreamer)

      and now am reliant on Adobe support.

       

      Hello Adobe support please can you help me.

        • 1. Re: Can't Playback - 503 Errors
          nick.doyle Community Member

          Taking advice from electroteque in this thread:

          http://forums.adobe.com/message/3488310#3488310

           

          I ran strace on httpd to see what was happening:

           

          [pid 20326] read(16, "GET /hds/tintin/tintin-cropSeg1-"..., 8000) = 505

          [pid 20326] stat("/var/www/html/hds/tintin/tintin-cropSeg1-Frag3", 0x7ffff3e128e0) = -1 ENOENT (No such file or directory)

          [pid 20326] lstat("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

          [pid 20326] lstat("/var/www", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0

          [pid 20326] lstat("/var/www/html", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0

          [pid 20326] lstat("/var/www/html/hds", 0x7ffff3e128e0) = -1 ENOENT (No such file or directory)

          [pid 20326] stat("/var/www/html/video/hds/tintin/tintin-cropSeg1.f4f", {st_mode=S_IFREG|0664, st_size=14825019, ...}) = 0

          [pid 20326] stat("/var/www/html/video/hds/tintin/tintin-cropSeg1.f4x", {st_mode=S_IFREG|0664, st_size=89, ...}) = 0

          [pid 20326] open("/var/www/html/video/hds/tintin/tintin-cropSeg1.f4f", O_RDONLY) = 17

          [pid 20326] fstat(17, {st_mode=S_IFREG|0664, st_size=14825019, ...}) = 0

          [pid 20326] open("/var/www/html/video/hds/tintin/tintin-cropSeg1.f4f", O_RDONLY) = 18

          [pid 20326] open("/var/www/html/video/hds/tintin/tintin-cropSeg1.f4x", O_RDONLY) = 19

           

          Indeed it looks like the apache module is returning 503, when it should be returning 404

          (though - why is the player even requesting non-existent fragments ....)