Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Just in Time Transcoder (JITT)–

Get Started Guide


Revision 1.0

Strictly Confidential – Non-Disclosure


Agreement Required
2017-04-07
This material and information (“Information”) constitutes a trade secret of Vantrix Corporation (“Vantrix”) and is
strictly confidential. You agree to keep this information confidential and to take all necessary measures to maintain
its secrecy. Without limiting the foregoing, Vantrix Corporation considers its confidential information, including, but
not limited to any source code and technical information, to be an unpublished proprietary trade secret. If an
authorized publication occurs, the following notice shall be affixed to it: Copyright © 2014 Vantrix Corporation. All
Rights Reserved.

No part of this material may be reproduced, including, but not limited to, photocopying, electronic, or mechanical
recording, nor stored in a retrieval system, or otherwise transmitted, in any form or by any means, without the
prior written permission of Vantrix Corporation.
Vantrix Corporation assumes no responsibility for any errors or omissions. This Information is subject to continuous
updates and improvements. All warranties implied or expressed, including but not limited to implied warranties of
merchantability, fitness for purpose, condition of title, and non-infringement, are specifically excluded. In no event
shall Vantrix Corporation and its suppliers be liable for any special, indirect, or consequential damages or any
damages whatsoever arising out of or in connection with the use of this information. The foregoing disclaimer shall
apply to the maximum extent permitted by applicable law, even if a particular remedy fails its essential purpose.

Vantrix is either a registered trademark or a trademark of Vantrix Corporation in Canada and/or other countries.
Any unauthorized use is strictly prohibited.
All other names and trademarks are the property of their respective owners.
Any reference in the text of this document to VoiceAge Networks shall be construed as a reference to Vantrix.

The AMR Narrowband Standard and AMR Wideband Plus Standard are licensed by VoiceAge Corporation, Nokia
Corporation, and Telefonaktiebolaget L M Ericsson acting through VoiceAge Corporation.
The mp3 codec is licensed by Thomson Licensing S.A. MPEG Layer-3 audio coding technology licensed from
Fraunhofer IIS and Thomson. Supply of this product does not convey a license or imply any right to distribute
content created with this product in revenue-generating broadcast systems (terrestrial, satellite, cable and/or other
distribution channels), streaming applications (via Internet, intranets and/or other networks), other content
distribution systems (pay-audio or audio-on-demand applications and the like) or on physical media (compact
discs, digital versatile discs, semiconductor chips, hard drives, memory cards and the like). An independent license
for such use is required. For details, please visit http://mp3licensing.com.
The MPEG-4 Visual Standard (ISO/IEC 14496-2) is licensed by MPEG LA, L.L.C. Use of this product in any manner
that complies with the MPEG-4 Visual Standard is prohibited, except for use by a consumer engaging in personal
and non-commercial activities.
QCELP and EVRC are licensed by QUALCOMM Incorporated under one or more of the following patents: 5,414,796;
5,778,338; 5,657,420; 5,911,128; 6,240,387; 6,484,138; 5,742,734

© Copyright 2017 Vantrix Corporation

Vantrix Corporation
910 rue Peel – G1
Montreal, QC H3C 2H8 CANADA
Tel: +1 (514) 866-1717
Fax: +1 (514) 866-6868
www.vantrix.com
Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

Content

DOCKER ................................................................................................................................................................. 4
INSTALLATION ......................................................................................................................................................... 4
RUNNING ............................................................................................................................................................... 4
NETWORK .............................................................................................................................................................. 4
HTTP REQUEST ....................................................................................................................................................... 4
PROGRESSIVE EXAMPLE ............................................................................................................................................. 5
NON-PROGRESSIVE EXAMPLE ..................................................................................................................................... 6

Strictly Confidential – NDA Required 3 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

Docker

This guide discusses different topics that will help get you started using the Just In Time
Transcoder (JITT).

Installation

To install run command:


docker load < ./centos68-hpmvom-17.04.0002.tar

Running

• To initialize the container run command:


docker run -d -p 3128:3128 --name centos68-hpmvom centos68-hpmvom
• To start the container run command:
docker start centos68-hpmvom
• To determine ip address of the docker container (where JITT runs). The "docker run..."
(see “To initialize…” above) command prints the id of the container (ex:
"b1999b76adaa1d4c79b07f25dd5dd20650926bbf6d05fa50dc54b9ac6de8f311" in our
case) use this id in the following command to identify the ip address you need:
docker inspect
b1999b76adaa1d4c79b07f25dd5dd20650926bbf6d05fa50dc54b9ac6de8f311 | grep
IPAddress

In our case the JITT IP is: "172.17.0.2"

Network

• JITT is setup as a proxy within the docker container.


• redirect your HTTP GET request to reach JITT
• the JITT needs to have access to the HTTP media server

HTTP Request

Your http request should reach JITT

Strictly Confidential – NDA Required 4 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

ex:
curl -L -s -m 120000 --connect-timeout 120000 -x "172.17.0.2:3128" -A "Mozilla/5.0
(Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"
http://192.168.122.1/media/verizon/LG_G6/HD_16-9.mp4 -o /tmp/out.mp4
where:
• "-x" argument: represents the docker container's IP (where JITT runs: "172.17.0.2" in our
case) and port (JITT port 3128). In this request it represents “proxy redirection”.
• "-A" argument: is the origin device's browser's user-agent ("Mozilla/5.0 (Windows NT
6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0" in our case)
• "http://192.168.122.1/media/verizon/LG_G6/HD_16-9.mp4": is the url of the media to
fetch, at a location accessible by JITT
In this HTTP request the proxy redirection "172.17.0.2:3128" ensures the HTTP request reaches
JITT. The JITT forwards the HTTP request the origin server. As the origin server HTTP
response reaches JITT, transcoding is performed on the fly. JITT sends the HTTP response
delivering the On The Fly transcoded media.

Progressive example

Follows is a sample (using “curl”) HTTP printout resulting for this “curl…” command for a
request for a progressive media (not using byte ranges). The example below shows the
interaction between the client and JITT:

* About to connect() to proxy 172.17.0.2 port 3128 (#0)


* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET http://192.168.122.1/media/verizon/LG_G6/HD_16-9.mp4 HTTP/1.1
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0< HTTP/1.1 302 Moved
Temporarily
< Date: Fri, 07 Apr 2017 15:27:47 GMT
< Location: http://192.168.122.1/media/verizon/LG_G6/HD_16-
9.mp4?vtxid=EFCA89A44D25DCBE2DAF5B7B8D9ADD26.172.17.0.1&vtxguid=25697778
4252034963581112901296628760578
< X-Cache: MISS from proxy.mobile
< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)

Strictly Confidential – NDA Required 5 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

< Connection: close


<
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Closing connection #0
* Issue another request to this URL: 'http://192.168.122.1/media/verizon/LG_G6/HD_16-
9.mp4?vtxid=EFCA89A44D25DCBE2DAF5B7B8D9ADD26.172.17.0.1&vtxguid=25697778
4252034963581112901296628760578'
* About to connect() to proxy 172.17.0.2 port 3128 (#0)
* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET http://192.168.122.1/media/verizon/LG_G6/HD_16-
9.mp4?vtxid=EFCA89A44D25DCBE2DAF5B7B8D9ADD26.172.17.0.1&vtxguid=25697778
4252034963581112901296628760578 HTTP/1.1
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Date: Fri, 07 Apr 2017 15:27:48 GMT
< Accept-Ranges: bytes
< ETag: "d6a343-54c48b8d6e280"
< Server: Apache/2.4.7 (Ubuntu)
< Content-Length: 3955618
< Content-Type: video/mp4
< Last-Modified: Mon, 03 Apr 2017 20:08:26 GMT
< X-Cache: MISS from proxy.mobile
< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)
< Connection: keep-alive
<
{ [data not shown]
100 3862k 100 3862k 0 0 675k 0 0:00:05 0:00:05 --:--:-- 775k* Connection #0 to
host 172.17.0.2 left intact

* Closing connection #0

Non-Progressive Example

Now here is a sample (using “curl”) HTTP printout resulting for this “curl…” command for a
request non-progressive media (using byte ranges). The example below shows the interaction
between the client and JITT:

Strictly Confidential – NDA Required 6 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

* About to connect() to proxy 172.17.0.2 port 3128 (#0)


* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4 HTTP/1.1
> Range: bytes=0-1
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0< HTTP/1.1 302 Moved
Temporarily
< Date: Fri, 07 Apr 2017 15:43:05 GMT
< Location:
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303421386834593320802685176775831519234
< X-Cache: MISS from proxy.mobile
< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)
< Connection: close
<
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Closing connection #0
* Issue another request to this URL:
'http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303421386834593320802685176775831519234'
* About to connect() to proxy 172.17.0.2 port 3128 (#0)
* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303421386834593320802685176775831519234
HTTP/1.1
> Range: bytes=0-1
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 302 Moved Temporarily
< Date: Fri, 07 Apr 2017 15:43:05 GMT

Strictly Confidential – NDA Required 7 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

< Location:
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303429012545235318744000582603517263874
< X-Cache: MISS from proxy.mobile
< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)
< Connection: close
<
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Closing connection #0
* Issue another request to this URL:
'http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303429012545235318744000582603517263874'
* About to connect() to proxy 172.17.0.2 port 3128 (#0)
* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303429012545235318744000582603517263874
HTTP/1.1
> Range: bytes=0-1
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 302 Moved Temporarily
< Date: Fri, 07 Apr 2017 15:43:05 GMT
< Location:
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303439119681927263446971935862394257410
< X-Cache: MISS from proxy.mobile
< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)
< Connection: close
<
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Closing connection #0
* Issue another request to this URL:
'http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303439119681927263446971935862394257410'
* About to connect() to proxy 172.17.0.2 port 3128 (#0)
* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303439119681927263446971935862394257410
HTTP/1.1

Strictly Confidential – NDA Required 8 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

> Range: bytes=0-1


> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 302 Moved Temporarily
< Date: Fri, 07 Apr 2017 15:43:05 GMT
< Location:
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303610883169131687962273812041752969218
< X-Cache: MISS from proxy.mobile
< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)
< Connection: close
<
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Closing connection #0
* Issue another request to this URL:
'http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303610883169131687962273812041752969218'
* About to connect() to proxy 172.17.0.2 port 3128 (#0)
* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303610883169131687962273812041752969218
HTTP/1.1
> Range: bytes=0-1
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 206 Partial Content
< Cache-Control: no-cache
< Date: Fri, 07 Apr 2017 15:43:05 GMT
< Accept-Ranges: bytes
< ETag: "c4a574-54c48ae965f80"
< Server: Apache/2.4.7 (Ubuntu)
< Content-Length: 2
< Content-Range: bytes 0-1/3806735
< Content-Type: video/mp4
< Last-Modified: Mon, 03 Apr 2017 20:05:34 GMT
< X-Cache: MISS from proxy.mobile

Strictly Confidential – NDA Required 9 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)


< Connection: keep-alive
<
{ [data not shown]
0 2 0 2 0 0 4 0 --:--:-- --:--:-- --:--:-- 0* Connection #0 to host 172.17.0.2
left intact

* Closing connection #0
* About to connect() to proxy 172.17.0.2 port 3128 (#0)
* Trying 172.17.0.2... connected
* Connected to 172.17.0.2 (172.17.0.2) port 3128 (#0)
> GET
http://192.168.122.1/media/verizon/Samsung_S8/HD.mp4?vtxid=61D437CEDF5DFE280105
1D9212F51FA7.172.17.0.1&vtxguid=303421386834593320802685176775831519234
HTTP/1.1
> Range: bytes=0-3806735
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101
Firefox/47.0
> Host: 192.168.122.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0< HTTP/1.1 206 Partial Content
< Cache-Control: no-cache
< Date: Fri, 07 Apr 2017 15:43:06 GMT
< Accept-Ranges: bytes
< ETag: "c4a574-54c48ae965f80"
< Server: Apache/2.4.7 (Ubuntu)
< Content-Length: 3806735
< Content-Range: bytes 0-3806734/3806735
< Content-Type: video/mp4
< Last-Modified: Mon, 03 Apr 2017 20:05:34 GMT
< X-Cache: MISS from proxy.mobile
< Via: 1.1 proxy.mobile (HPM/14.09.0099.03)
< Connection: keep-alive
<
{ [data not shown]
100 3717k 100 3717k 0 0 689k 0 0:00:05 0:00:05 --:--:-- 760k* Connection #0 to
host 172.17.0.2 left intact

* Closing connection #0

Strictly Confidential – NDA Required 10 of 11


Just in Time Transcoder (JITT) – Get Started Guide, Rev. 1.0

Strictly Confidential – NDA Required 11 of 11

You might also like