0

I am trying to setup a testbed that will be used for experimentation, and I have deployed some VMs over Openstack and the setup looks like this currently: current VM setup The far right machine is running Apache2 server and video is hosted in /var/www/html/videos folder. VNF1 and VNF2 machines are acting as intermediate routers with static routes configured to route traffic to Apache server machine.

The client machine runs VLC player to stream video on-demand from the server over HTTP like this:

vlc http://10.10.2.7/videos/bunny.mp4

Now, I want to be able to do dynamic transcoding of video while it is being streamed, but I don't want to do transcoding at server side (for experiment's purpose the server is not in our control) neither at client side but somewhere in the middle machines (VNF1 for example) so that it is transparent to client. Basically, I want to implement video transcoder as a network function.

I have found FFmpeg which I think should be able to get this done, ffmpeg-server for example allows streaming over HTTP, but I am not exactly sure how to use it for transcoding video traffic?

Wajahat
  • 1,593
  • 3
  • 20
  • 47
  • Do you want to transcode in real time and send VLC something different than what's in you bunny.mp4? May be lower the bitrate? – Markus Schumann Jul 31 '17 at 19:01
  • Yes that is exactly what I need, lower bit-rate or anything similar. Basically a video optimizer VNF like this : http://www.operasoftware.com/products/operators/rocket-optimizer but does not need to be anything fancy. – Wajahat Jul 31 '17 at 19:02
  • An on-the-fly real-time transcode attempting to lower the bitrate of an MP4 file is going to be pretty tricky. Your client (VLC in this case) will first read the MOOV box and now VLC knows the location and size of each sample. If you intercept the MOOV box read - let's say through a proxy- and try to send a different sample table representing a lower bitrate - you won't know the sample sizes unless you have already transcoded. All in all this is not a trivial problem. – Markus Schumann Jul 31 '17 at 21:16
  • Is there anything else that can be done other than transcoding which can modify the video traffic on-the-fly , maybe transrating or anything video related that can be implemented as a network function? – Wajahat Jul 31 '17 at 21:29

0 Answers0