Hi all,
As many using wowza, I’d really love to have the possibility to transcode VOD.
I’ve seen many post answers talking about adding it in the roadmap, for quite some time now… and I’d like to know what is this feature status.
I’m not super knowledgeable about streaming technologies, but I don’t really understand why it’s not already there… It’s just a question of streaming internally a VOD then transcoding to the outside. That doesn’t seem super hard considering the different pieces exist.
Is there any date or planned version for that ?
If not, is there any reliable alternative solution (plugin or multi server implementation…) ?
Cheers
I cannot saw if/when VOD Transcoding via Wowza Transcoder will be implemented. But here are a few workarounds to consider:
This guide will walk you through setting up ABR for VOD:
How to do adaptive bitrate streaming
To achieve key frame alignment you can use ffmpeg. However, encoding keyframe aligned renditions with ffmpeg has been known to be problematic and unreliable.
However, I did come across a forum contribution that showed a successful approach for generating key frame aligned multi-bitrate rendition for VOD with ffmpeg by doing multiple passes. This was done on Linux and I have not tested. It may not work on other platforms.
ffmpeg -y -i bigbuckbunny_1500.mp4 -c:a libfaac -ac 2 -ab 64k -c:v libx264 -preset:v veryfast -threads 0 -r 24 -g 48 -keyint_min 48 -sc_threshold 0 -x264opts no-mbtree:bframes=1 -pass 1 -b:v 286k -s 384x216 bigbuck-350k.mp4
ffmpeg -y -i bigbuckbunny_1500.mp4 -c:a libfaac -ac 2 -ab 64k -c:v libx264 -preset:v fast -threads 0 -r 24 -g 48 -keyint_min 48 -sc_threshold 0 -x264opts no-mbtree:bframes=1 -pass 2 -b:v 286k -s 384x216 bigbuck-350k.mp4
ffmpeg -y -i bigbuckbunny_1500.mp4 -c:a libfaac -ac 2 -ab 64k -c:v libx264 -preset:v fast -threads 0 -r 24 -g 48 -keyint_min 48 -sc_threshold 0 -x264opts no-mbtree:bframes=1 -pass 2 -b:v 836k -s 640x360 bigbuck-900k.mp4
You may also find this guide helpful:
How to encode video on demand content
Another option would be to use the static video as the source for a live stream and use the Wowza Transcoder to generate the key frame aligned renditions for you.
How to do basic server-side publishing with Stream class streams
Once you have the live stream, to do live ABR streaming you would send a source stream to the Wowza Transcoder and transrate the single stream into an ABR set.
This article provides more details about using Wowza Transcoder for live streams:
How to set up and run Wowza Transcoder AddOn for live streaming
I hope this answers your question.
Regards,
Salvadore
Hi,
You can fully automate the smil creation process if you need to, even for vod file.
The Rest API allows you to do most operations that you would normally do with the Manager.
This query example shows how to use curl commands to manipulate smil files:
Daren
Hi,
We unfortunately can’t say if or when Transcoder will be available for VOD streams, though we are aware of demand for it and it is on our roadmap.
I would suggest the simplest option currently is to look at our Stream Publisher module. This allows you to create a “pseudo-live” stream which can be played into a Wowza “live” application, and thus you can apply the Transcoder to the source and create ABR output streams. You also can also optionally create your smil file by calling the pre-configured HTTP Provider as outlined in this article while the stream is active.
Paul
Thanks Salvadore,
I ran into some of these posts, but I was hoping for a simpler, out of the box solution.
- Multi ffmpeg pass is a bit difficult for me, because I have to process and convert thousands of videos a months, and that already takes a lot of time/resources.
Will give it a shot anyway… it may be worth the extra processing time if it helps me save a lot of bandwidth
- The Stream Class… Will have to dig up my Java knowledges from uni :-/ and since new videos are uploaded “permanently” via my app, it looks like it’s not going to be easy.
An official answer about the date/roadmap form Wowza team would be much appreciated
Thanks for the answer Paul.
The thing is users often upload videos at the same time, “replying” to each other or doing a scheduled task. During these peak hours, I can have many videos uploaded to my app over a short amount of time.
I want all the videos available asap, so does that mean I need to update my smil file every time a new video is posted.
Cheers