|
Rubén,
This is extremely helpful! Thank you.
I have an Apache proxy sitting in front of my MH distribution server. My media package URLs are written like
http://<my apache proxy url>/static…
Do I simply need to add a pseudo-streaming module to my apache server and I am good to go? Or will pseudo-streaming not work via mod_proxy? Does anyone have experience using this ( http://h264.code-shop.com/trac/wiki)
Apache psuedo-streaming module?
Thanks again for everyone's help,
- Doug
Sorry for the double mail. I've been told that my previous mail have not made it to the list. It contained a couple photos which I think may be too big (:S).
Please find a copy of the text below. Sorry for the inconvenience:
Hello,
As we are distributing MP4+H264 videos in production, we have been investigating this issues for a long while. So let me share some comments about what we found out.
The moov header in an MP4 files used to be required to be at the beginning of the archive, because without that header the video is not playable. However, if your download server has a pseudo-streaming module
(which Itotally recommend), the players can first fetch the last part of the file, where most of the muxers (including ffmpeg) store the moov header, and then start
downloading the file from the beginning. With a psudo-streaming module,qt-faststart only saves some requests to the server. The impact in the overall performance is minimum, though.
Of course if you are using Jetty (or any other plain download server with not pseudostreaming capabilities) you will need to have the moov header at the beginning of the file if you don't want to wait until all the
file has been downloaded to play it.
You can run qt-faststart by using the existing CLIWorkflowOperationHandler, but there are some issues to it:
- CLIOperationHandler runs a CLI command in the admin server, but not in the worker(s) where it is expected.
- You can not specify a certain (set of) tag(s) or flavor(s) to filter the elements the operation will be applied to, as it happens in other operations such as "compose". Instead, you need to explicitly specify all the mediapackage
elements on which you want to apply the operation, and that using a rather cumbersome xpath syntax.
- qt-faststart generates another file (it does not operate on the input file directly). Then your script needs to overwrite old file with the new one, or otherwise create an XML representation
of a mediapackage that includes that result video as a new track, with proper identification to it (a "qtfaststart" tag, for instance).
However our biggest concern is the large amount of time since you start downloading the video until it is playable even if the header is at the beginning of the file. We are talking about a 4 seconds lag at least, which gives quite a negative impression
in comparison with the streaming solutions that start playing almost instantly. But this is a matter for another (long) discussion.
2012/9/26 Rubén Pérez <[email protected]>
Brian,
As I said, if you have a pseudostreaming server, it is able to fetch the header at the end of the file. Please see my previous post. ffmpeg always leaves the
moov header at the end of the file.
Best regards
Rubén Pérez
TELTEK Video Research
2012/9/26 Brian O'Hagan <[email protected]>
Hi Doug!
(Also fwiw: We use an Ffmpeg encoding profile (x264) for assets served via pseudostreaming
and byte range requests, and time and seek calls work ok, implying the index is at the front of the file.)
On Wednesday, September 26, 2012 at 5:54 AM, Hall, Douglas wrote:
Hi Chris,
When I try to play my MP4's in the engage player via download, the video
will not start playing until the entire file has downloaded. If I encode
to FLV the video will start playing immediately. I have read the reason
for this is that H.264/MP4 files contain metadata at the end of the file
which the flash player needs before it can start playing. Using
qt-faststart to move this metadata to the beginning of the file is
supposed to resolve this issue. Has anyone had the same experience? Is
there a better solution?
Thanks,
- Doug
On Wed, 26 Sep 2012 03:10:47 +0000
Hi,
Is anyone using qt-faststart to move the index information from the
end of an H.264/MP4 to the beginning? If so, how are you calling it
from your Matterhorn workflows? Is there a better way of doing this
without using qt-faststart?
Best regards,
- Doug
Why would you do this? For mp4 streaming hinting?
Chris
_______________________________________________
Matterhorn-users mailing list
_______________________________________________
Matterhorn-users mailing list
[email protected]
http://lists.opencastproject.org/mailman/listinfo/matterhorn-users
|