Well, not always. Sometimes muxing might be a better option.
Muxing is the process of packing encoded streams into another container format while preserving your video and audio codecs. There is no actual transcoding or modifying your video streams. It is just changing the most external video shell.
A few days ago we have added new preset in Panda called “HLS Muxing Variant”. You can easily guess what it does with the input video. The most important thing about transmuxing is that it takes less time comparing to traditional encoding to “HLS Variant” as it is not changing resolution, bitrate, etc. That’s why we priced it as low as ¼ of standard video minute, no matter the size or resolution of source video.
It may sound complicated so here’s an real life example. Let’s assume you have HQ source video and it is H264, AAC encoded video with 2000k bitrate. Re-encoding is always time consuming and and impacts quality so you can use transmuxing to only change format. You may say that HLS is adaptive streaming technology so you need more that one bitrate. You’re right! It is. You can create two other profiles for 1000k and 500k. And variants playlist as well.
Panda::Profile.create!({ :preset_name => "hls.muxer", :bitrate => 2000, # this three values are for variant.playlist :width => 1280, :height => 720 }) Panda::Profile.create!({ :preset_name => "hls.variant", :video_bitrate => 1000 }) Panda::Profile.create!({ :preset_name => "hls.variant", :video_bitrate => 500 }) Panda::Profile.create!({ :preset_name => "hls.variant.playlist", :variants => "hls.*" })
Now you can send our HQ source video to Panda. The output will be 1 master playlist, 3 variants playlist and 3 groups of segments (and some screenshots). With these in place you are ready to serve your adaptive streaming content.
Give it a try. If you have any problems remember that we are here for you and we are always happy to help.