video_device.mp4 comparisons

This page concerns an analysis of the MP4 files shipped in Google's Linux system image file for the Google Coral Development Board ("Dev Board"). On the Dev Boards file system, a Debian-like derivative named mendel, are two video files: /usr/share/edgetpudemo/video_device.mp4 and /usr/share/edgetpudemo/video_stream.mp4. Yet, both appear to depict the same sequence.  The files are used for their demonstration script, edgetpu_demo. which can display results on a connected HDMI screen device or create an rtsp server so the results can be viewed remotely.  The script requires either the parameter "--device" or "--stream" to select either method.

This page lists the variety of analysis of the three files based on the same video from pixabay.

Pixabay's version showing the different downloads based on size:

1) road_-_11018_Original_1920x1080.mp4 (59,565,269 bytes) - downloaded from pixabay at: https://pixabay.com/videos/road-autobahn-motorway-highway-11018/

2) video_device.mp4 (39,411,720 byes)- included with Coral image used to display on attached screen

3) video_stream.mp4 (15,059,552bytes ) - included with Coral image used for rtsp server (headless mode)

Questions:

1) Why was the video file available at pixabay modified? 59MB to 39MB or 15MB.

2) Why are there different modified versions for each demonstration: device screen and rstp server?  39MB vs. 15 MB  Shouldn't the same file work for both functions?

This investigation arose because John tried to use other MP4 files and found he could not see results with the stream demo and the device demo.  This suggests that something in the code the displays the edge detection over the original file is very sensitive or brittle.

The Coral files are located in: /usr/share/edgetpudemo

Table ffmpeg diffs consists of the Linux utilit diff results comparing two output files generated from a command such as:  ffprobe video_stream.mp4 >ffprobe_stream.txt 2>&1

Note: ffprobe sends its output to STDERR so we redirect STDERR "2" to STDOUT "&1" so all output goes to the text file.

ffmpeg diffs
road_-_11018_Original_1920x1080.mp4 vs. video_device.mp4 road_-_11018_Original_1920x1080.mp4 vs. video_stream.mp4 video_device.mp4 vs. video_stream.mp4
jlpoole@ares ~/ai/coral_demo $ date;diff ffprobe_road.txt ffprobe_device.txt
Thu Apr 21 08:26:45 PDT 2022
13c13
<Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'road_-_11018_Original_1920x1080.mp4':
---
>Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video_device.mp4':
15,20c15,20
< major_brand : isom
< minor_version : 512
< compatible_brands: isomiso2avc1mp41
< encoder : Lavf56.4.101
< Duration: 00:01:00.08, start: 0.000000, bitrate: 7932 kb/s
< Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 7803 kb/s, 50 fps, 50 tbr, 12800 tbn, 100 tbc (default)
---
> major_brand : mp42
> minor_version : 0
> compatible_brands: mp42mp41isomavc1
> creation_time : 2017-07-30T00:19:59.000000Z
> Duration: 00:01:00.05, start: 0.000000, bitrate: 5250 kb/s
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4990 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
22c22,23
< handler_name : VideoHandler
---
> creation_time : 2017-07-30T00:19:59.000000Z
> handler_name : L-SMASH Video Handler
24c25,26
< Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
---
> encoder : AVC Coding
> Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
26c28,29
< handler_name : SoundHandler
---
> creation_time : 2017-07-30T00:19:59.000000Z
> handler_name : L-SMASH Audio Handler
jlpoole@ares ~/ai/coral_demo $
jlpoole@ares ~/ai/coral_demo $ date;diff ffprobe_road.txt ffprobe_stream.txt
Thu Apr 21 08:29:25 PDT 2022
13c13
< Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'road_-_11018_Original_1920x1080.mp4':
---
>Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video_stream.mp4':
15,20c15,21
< major_brand : isom
< minor_version : 512
< compatible_brands: isomiso2avc1mp41
< encoder : Lavf56.4.101
< Duration: 00:01:00.08, start: 0.000000, bitrate: 7932 kb/s
< Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 7803 kb/s, 50 fps, 50 tbr, 12800 tbn, 100 tbc (default)
---
> major_brand : mp42
> minor_version : 0
> compatible_brands: mp42mp41isomiso2
> creation_time : 2019-02-21T19:09:29.000000Z
> encoder : x264
> Duration: 00:01:00.00, start: 0.000000, bitrate: 2007 kb/s
> Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt470bg/smpte170m/bt709), 960x540 [SAR 1:1 DAR 16:9], 2006 kb/s, 25 fps, 25 tbr, 2500 tbn, 50 tbc (default)
21a23
> creation_time : 2019-02-21T19:09:29.000000Z
23,26d24
< vendor_id : [0][0][0][0]
< Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
< Metadata:
< handler_name : SoundHandler
jlpoole@ares ~/ai/coral_demo $

jlpoole@ares ~/ai/coral_demo $ date;diff ffprobe_device.txt ffprobe_stream.txt
Thu Apr 21 08:29:43 PDT 2022
13c13
< Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video_device.mp4':
---
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video_stream.mp4':
17,20c17,21
< compatible_brands: mp42mp41isomavc1
< creation_time : 2017-07-30T00:19:59.000000Z
< Duration: 00:01:00.05, start: 0.000000, bitrate: 5250 kb/s
< Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4990 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
---
> compatible_brands: mp42mp41isomiso2
> creation_time : 2019-02-21T19:09:29.000000Z
> encoder : x264
> Duration: 00:01:00.00, start: 0.000000, bitrate: 2007 kb/s
> Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt470bg/smpte170m/bt709), 960x540 [SAR 1:1 DAR 16:9], 2006 kb/s, 25 fps, 25 tbr, 2500 tbn, 50 tbc (default)
22,29c23,24
< creation_time : 2017-07-30T00:19:59.000000Z
< handler_name : L-SMASH Video Handler
< vendor_id : [0][0][0][0]
< encoder : AVC Coding
< Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
< Metadata:
< creation_time : 2017-07-30T00:19:59.000000Z
< handler_name : L-SMASH Audio Handler
---
> creation_time : 2019-02-21T19:09:29.000000Z
> handler_name : VideoHandler
jlpoole@ares ~/ai/coral_demo $


gst-discoverer-1.0 diffs
road_-_11018_Original_1920x1080.mp4 vs. video_device.mp4 road_-_11018_Original_1920x1080.mp4 vs. video_stream.mp4 video_device.mp4 vs. video_stream.mp4
jlpoole@ares ~/ai/coral_demo $ diff gst-discoverer_road_-_11018_Original_1920x1080.txt gst-discoverer_video_device.txt
1,2c1,2
< Analyzing file:///home/jlpoole/ai/coral_demo/road_-_11018_Original_1920x1080.mp4
< Done discovering file:///home/jlpoole/ai/coral_demo/road_-_11018_Original_1920x1080.mp4
---
> Analyzing file:///home/jlpoole/ai/coral_demo/video_device.mp4
> Done discovering file:///home/jlpoole/ai/coral_demo/video_device.mp4
5c5
< Duration: 0:01:00.075000000
---
> Duration: 0:01:00.053333333
10c10
< Stream ID: b20981be5293c9f4857a464174a732934bf33b5704fb3db13a7b060a9bb0b3d6/002
---
> Stream ID: 27c858839b67f3fb4e09ca9f460b7d22e7f8135915a1b8fb0c93998f22ded17a/002
15,16c15,16
< Bitrate: 128388
< Max bitrate: 128388
---
> Bitrate: 0
> Max bitrate: 264088
18c18
< Stream ID: b20981be5293c9f4857a464174a732934bf33b5704fb3db13a7b060a9bb0b3d6/001
---
> Stream ID: 27c858839b67f3fb4e09ca9f460b7d22e7f8135915a1b8fb0c93998f22ded17a/001
22c22
< Frame rate: 50/1
---
> Frame rate: 25/1
25c25
< Bitrate: 7793665
---
> Bitrate: 4981727
jlpoole@ares ~/ai/coral_demo $
jlpoole@ares ~/ai/coral_demo $ diff gst-discoverer_road_-_11018_Original_1920x1080.txt gst-discoverer_video_stream.txt
1,2c1,2
< Analyzing file:///home/jlpoole/ai/coral_demo/road_-_11018_Original_1920x1080.mp4
< Done discovering file:///home/jlpoole/ai/coral_demo/road_-_11018_Original_1920x1080.mp4
---
> Analyzing file:///home/jlpoole/ai/coral_demo/video_stream.mp4
> Done discovering file:///home/jlpoole/ai/coral_demo/video_stream.mp4
5c5
< Duration: 0:01:00.075000000
---
> Duration: 0:01:00.000000000
9,20c9,12
< audio #1: MPEG-4 AAC
< Stream ID: b20981be5293c9f4857a464174a732934bf33b5704fb3db13a7b060a9bb0b3d6/002
< Language: <unknown>
< Channels: 2 (front-left, front-right)
< Sample rate: 48000
< Depth: 32
< Bitrate: 128388
< Max bitrate: 128388
< video #2: H.264 (High Profile)
< Stream ID: b20981be5293c9f4857a464174a732934bf33b5704fb3db13a7b060a9bb0b3d6/001
< Width: 1920
< Height: 1080
---
> video #1: H.264 (Constrained Baseline Profile)
> Stream ID: bdd1de0787b0fb01c029903cb5b55f51979308a907b9324aa1c8797a5ed96ad5/001
> Width: 960
> Height: 540
22c14
< Frame rate: 50/1
---
> Frame rate: 25/1
25,26c17,18
< Bitrate: 7793665
< Max bitrate: 0
---
> Bitrate: 2006877
> Max bitrate: 2048000
jlpoole@ares ~/ai/coral_demo $
jlpoole@ares ~/ai/coral_demo $ diff gst-discoverer_video_device.txt gst-discoverer_video_stream.txt
1,2c1,2
< Analyzing file:///home/jlpoole/ai/coral_demo/video_device.mp4
< Done discovering file:///home/jlpoole/ai/coral_demo/video_device.mp4
---
> Analyzing file:///home/jlpoole/ai/coral_demo/video_stream.mp4
> Done discovering file:///home/jlpoole/ai/coral_demo/video_stream.mp4
5c5
< Duration: 0:01:00.053333333
---
> Duration: 0:01:00.000000000
9,20c9,12
< audio #1: MPEG-4 AAC
< Stream ID: 27c858839b67f3fb4e09ca9f460b7d22e7f8135915a1b8fb0c93998f22ded17a/002
< Language: <unknown>
< Channels: 2 (front-left, front-right)
< Sample rate: 48000
< Depth: 32
< Bitrate: 0
< Max bitrate: 264088
< video #2: H.264 (High Profile)
< Stream ID: 27c858839b67f3fb4e09ca9f460b7d22e7f8135915a1b8fb0c93998f22ded17a/001
< Width: 1920
< Height: 1080
---
> video #1: H.264 (Constrained Baseline Profile)
> Stream ID: bdd1de0787b0fb01c029903cb5b55f51979308a907b9324aa1c8797a5ed96ad5/001
> Width: 960
> Height: 540
25,26c17,18
< Bitrate: 4981727
< Max bitrate: 0
---
> Bitrate: 2006877
> Max bitrate: 2048000
jlpoole@ares ~/ai/coral_demo $