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:
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?