{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "37788e3b",
   "metadata": {},
   "source": [
    "# Creation of the final video"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "31ecb6f2",
   "metadata": {},
   "outputs": [],
   "source": [
    "from pathlib import Path\n",
    "import subprocess\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "3d3d89d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "VIDEO_NUMBER = \"7\"\n",
    "PROJECT_ROOT = Path().resolve().parent.parent\n",
    "INPUT_VIDEO_PATH = str(\n",
    "    PROJECT_ROOT\n",
    "    / \"data\"\n",
    "    / f\"recording_{VIDEO_NUMBER}\"\n",
    "    / f\"Tracked_output_{VIDEO_NUMBER}.mp4\"\n",
    ")\n",
    "INPUT_VIDEO_LANE = str(\n",
    "    PROJECT_ROOT\n",
    "    / \"data\"\n",
    "    / f\"recording_{VIDEO_NUMBER}\"\n",
    "    / f\"Reconstructed_trajectory_deformed_{VIDEO_NUMBER}.mp4\"\n",
    ")\n",
    "INPUT_VIDEO_SPHERE = str(\n",
    "    PROJECT_ROOT / \"data\" / f\"recording_{VIDEO_NUMBER}\" / \"Rotating_sphere.mp4\"\n",
    ")\n",
    "\n",
    "OUTPUT_PATH = str(\n",
    "    PROJECT_ROOT / \"data\" / f\"recording_{VIDEO_NUMBER}\" / f\"Final_{VIDEO_NUMBER}.mp4\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "5e9da915",
   "metadata": {},
   "outputs": [],
   "source": [
    "if os.path.exists(OUTPUT_PATH):\n",
    "    os.remove(OUTPUT_PATH)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "72af2911",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers\n",
      "  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)\n",
      "  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared\n",
      "  libavutil      58. 29.100 / 58. 29.100\n",
      "  libavcodec     60. 31.102 / 60. 31.102\n",
      "  libavformat    60. 16.100 / 60. 16.100\n",
      "  libavdevice    60.  3.100 / 60.  3.100\n",
      "  libavfilter     9. 12.100 /  9. 12.100\n",
      "  libswscale      7.  5.100 /  7.  5.100\n",
      "  libswresample   4. 12.100 /  4. 12.100\n",
      "  libpostproc    57.  3.100 / 57.  3.100\n",
      "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/davic/projects/IACV_project/bowling-analysis/data/recording_7/Reconstructed_trajectory_deformed_7.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2mp41\n",
      "    encoder         : Lavf59.27.100\n",
      "  Duration: 00:00:05.25, start: 0.000000, bitrate: 3416 kb/s\n",
      "  Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 684x2340 [SAR 1:1 DAR 19:65], 3413 kb/s, 59 fps, 59 tbr, 15104 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "Stream mapping:\n",
      "  Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\n",
      "Press [q] to stop, [?] for help\n",
      "[libx264 @ 0x55ab6c4b7000] using SAR=1026/1027\n",
      "[libx264 @ 0x55ab6c4b7000] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n",
      "[libx264 @ 0x55ab6c4b7000] profile High, level 3.1, 4:2:0, 8-bit\n",
      "[libx264 @ 0x55ab6c4b7000] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\n",
      "Output #0, mp4, to 'resized_right_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2mp41\n",
      "    encoder         : Lavf60.16.100\n",
      "  Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(tv, progressive), 316x1080 [SAR 1026:1027 DAR 19:65], q=2-31, 59 fps, 15104 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "    Side data:\n",
      "      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\n",
      "[out#0/mp4 @ 0x55ab6c4b8500] video:48kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.230990%\n",
      "frame=  310 fps=0.0 q=-1.0 Lsize=      52kB time=00:00:05.20 bitrate=  81.7kbits/s speed=5.86x    \n",
      "[libx264 @ 0x55ab6c4b7000] frame I:2     Avg QP:14.02  size: 11228\n",
      "[libx264 @ 0x55ab6c4b7000] frame P:104   Avg QP:19.10  size:   169\n",
      "[libx264 @ 0x55ab6c4b7000] frame B:204   Avg QP:29.34  size:    39\n",
      "[libx264 @ 0x55ab6c4b7000] consecutive B-frames:  7.7% 12.3%  3.9% 76.1%\n",
      "[libx264 @ 0x55ab6c4b7000] mb I  I16..4: 33.4% 52.2% 14.4%\n",
      "[libx264 @ 0x55ab6c4b7000] mb P  I16..4:  0.3%  0.4%  0.1%  P16..4:  0.9%  0.2%  0.2%  0.0%  0.0%    skip:98.0%\n",
      "[libx264 @ 0x55ab6c4b7000] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.4%  0.0%  0.0%  direct: 0.0%  skip:99.5%  L0:49.9% L1:49.0% BI: 1.1%\n",
      "[libx264 @ 0x55ab6c4b7000] 8x8 transform intra:51.8% inter:67.2%\n",
      "[libx264 @ 0x55ab6c4b7000] coded y,uvDC,uvAC intra: 19.0% 25.2% 20.6% inter: 0.1% 0.3% 0.1%\n",
      "[libx264 @ 0x55ab6c4b7000] i16 v,h,dc,p: 51% 47%  1%  1%\n",
      "[libx264 @ 0x55ab6c4b7000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 44% 16% 38%  0%  0%  0%  0%  0%  1%\n",
      "[libx264 @ 0x55ab6c4b7000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 44% 35% 11%  1%  2%  2%  2%  2%  2%\n",
      "[libx264 @ 0x55ab6c4b7000] i8c dc,h,v,p: 56% 21% 22%  1%\n",
      "[libx264 @ 0x55ab6c4b7000] Weighted P-Frames: Y:0.0% UV:0.0%\n",
      "[libx264 @ 0x55ab6c4b7000] ref P L0: 83.6% 16.4%\n",
      "[libx264 @ 0x55ab6c4b7000] ref B L0: 88.5% 11.5%\n",
      "[libx264 @ 0x55ab6c4b7000] ref B L1: 90.7%  9.3%\n",
      "[libx264 @ 0x55ab6c4b7000] kb/s:73.06\n",
      "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers\n",
      "  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)\n",
      "  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared\n",
      "  libavutil      58. 29.100 / 58. 29.100\n",
      "  libavcodec     60. 31.102 / 60. 31.102\n",
      "  libavformat    60. 16.100 / 60. 16.100\n",
      "  libavdevice    60.  3.100 / 60.  3.100\n",
      "  libavfilter     9. 12.100 /  9. 12.100\n",
      "  libswscale      7.  5.100 /  7.  5.100\n",
      "  libswresample   4. 12.100 /  4. 12.100\n",
      "  libpostproc    57.  3.100 / 57.  3.100\n",
      "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'resized_right_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    encoder         : Lavf60.16.100\n",
      "  Duration: 00:00:05.25, start: 0.000000, bitrate: 80 kb/s\n",
      "  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 316x1080 [SAR 1026:1027 DAR 19:65], 74 kb/s, 59 fps, 59 tbr, 15104 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "Stream mapping:\n",
      "  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))\n",
      "Press [q] to stop, [?] for help\n",
      "[libx264 @ 0x5598034b9e80] using SAR=1026/1027\n",
      "[libx264 @ 0x5598034b9e80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n",
      "[libx264 @ 0x5598034b9e80] profile High, level 3.1, 4:2:0, 8-bit\n",
      "[libx264 @ 0x5598034b9e80] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\n",
      "Output #0, mp4, to 'padded_right_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    encoder         : Lavf60.16.100\n",
      "  Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 320x1080 [SAR 1026:1027 DAR 304:1027], q=2-31, 59 fps, 15104 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "    Side data:\n",
      "      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\n",
      "[out#0/mp4 @ 0x5598034b4fc0] video:50kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 8.401775%\n",
      "frame=  310 fps=0.0 q=-1.0 Lsize=      54kB time=00:00:05.20 bitrate=  85.6kbits/s speed=11.8x    \n",
      "[libx264 @ 0x5598034b9e80] frame I:2     Avg QP:11.33  size: 11159\n",
      "[libx264 @ 0x5598034b9e80] frame P:119   Avg QP:17.54  size:   170\n",
      "[libx264 @ 0x5598034b9e80] frame B:189   Avg QP:29.19  size:    43\n",
      "[libx264 @ 0x5598034b9e80] consecutive B-frames: 14.2% 12.3%  3.9% 69.7%\n",
      "[libx264 @ 0x5598034b9e80] mb I  I16..4: 58.2% 25.3% 16.5%\n",
      "[libx264 @ 0x5598034b9e80] mb P  I16..4:  0.2%  0.4%  0.0%  P16..4:  1.2%  0.2%  0.1%  0.0%  0.0%    skip:97.8%\n",
      "[libx264 @ 0x5598034b9e80] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.3%  0.0%  0.0%  direct: 0.1%  skip:99.5%  L0:52.8% L1:46.5% BI: 0.7%\n",
      "[libx264 @ 0x5598034b9e80] 8x8 transform intra:34.6% inter:62.6%\n",
      "[libx264 @ 0x5598034b9e80] coded y,uvDC,uvAC intra: 18.2% 26.7% 22.1% inter: 0.1% 0.5% 0.1%\n",
      "[libx264 @ 0x5598034b9e80] i16 v,h,dc,p: 63% 35%  1%  1%\n",
      "[libx264 @ 0x5598034b9e80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 37% 19% 42%  0%  0%  0%  0%  0%  0%\n",
      "[libx264 @ 0x5598034b9e80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 42% 38% 11%  1%  2%  2%  2%  1%  2%\n",
      "[libx264 @ 0x5598034b9e80] i8c dc,h,v,p: 55% 22% 22%  1%\n",
      "[libx264 @ 0x5598034b9e80] Weighted P-Frames: Y:0.0% UV:0.0%\n",
      "[libx264 @ 0x5598034b9e80] ref P L0: 83.5% 16.5%\n",
      "[libx264 @ 0x5598034b9e80] ref B L0: 86.0% 14.0%\n",
      "[libx264 @ 0x5598034b9e80] ref B L1: 92.3%  7.7%\n",
      "[libx264 @ 0x5598034b9e80] kb/s:77.18\n",
      "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers\n",
      "  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)\n",
      "  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared\n",
      "  libavutil      58. 29.100 / 58. 29.100\n",
      "  libavcodec     60. 31.102 / 60. 31.102\n",
      "  libavformat    60. 16.100 / 60. 16.100\n",
      "  libavdevice    60.  3.100 / 60.  3.100\n",
      "  libavfilter     9. 12.100 /  9. 12.100\n",
      "  libswscale      7.  5.100 /  7.  5.100\n",
      "  libswresample   4. 12.100 /  4. 12.100\n",
      "  libpostproc    57.  3.100 / 57.  3.100\n",
      "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/davic/projects/IACV_project/bowling-analysis/data/recording_7/Rotating_sphere.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    title           : Rotating Sphere with Axis DF\n",
      "    encoder         : Lavf60.16.100\n",
      "  Duration: 00:00:05.17, start: 0.000000, bitrate: 176 kb/s\n",
      "  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 300x300, 169 kb/s, 59.94 fps, 59.94 tbr, 166334 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "Stream mapping:\n",
      "  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))\n",
      "Press [q] to stop, [?] for help\n",
      "[libx264 @ 0x55e23da6bc80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n",
      "[libx264 @ 0x55e23da6bc80] profile High, level 3.0, 4:2:0, 8-bit\n",
      "[libx264 @ 0x55e23da6bc80] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=9 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\n",
      "Output #0, mp4, to 'resized_sphere_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    title           : Rotating Sphere with Axis DF\n",
      "    encoder         : Lavf60.16.100\n",
      "  Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 300x300, q=2-31, 59.94 fps, 166334 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "    Side data:\n",
      "      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\n",
      "[out#0/mp4 @ 0x55e23d9b7a80] video:141kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.189724%\n",
      "frame=  310 fps=0.0 q=-1.0 Lsize=     145kB time=00:00:05.12 bitrate= 232.1kbits/s speed=28.4x    \n",
      "[libx264 @ 0x55e23da6bc80] frame I:2     Avg QP:12.32  size: 13000\n",
      "[libx264 @ 0x55e23da6bc80] frame P:85    Avg QP:16.14  size:   808\n",
      "[libx264 @ 0x55e23da6bc80] frame B:223   Avg QP:16.32  size:   218\n",
      "[libx264 @ 0x55e23da6bc80] consecutive B-frames:  1.3%  7.1%  3.9% 87.7%\n",
      "[libx264 @ 0x55e23da6bc80] mb I  I16..4: 55.0% 10.5% 34.5%\n",
      "[libx264 @ 0x55e23da6bc80] mb P  I16..4:  2.0%  3.9%  1.1%  P16..4:  6.5%  2.0%  1.2%  0.0%  0.0%    skip:83.4%\n",
      "[libx264 @ 0x55e23da6bc80] mb B  I16..4:  0.4%  0.6%  0.2%  B16..8:  6.4%  1.7%  0.4%  direct: 0.6%  skip:89.7%  L0:49.7% L1:46.7% BI: 3.6%\n",
      "[libx264 @ 0x55e23da6bc80] 8x8 transform intra:46.4% inter:45.8%\n",
      "[libx264 @ 0x55e23da6bc80] coded y,uvDC,uvAC intra: 49.3% 75.4% 36.8% inter: 1.6% 2.7% 0.7%\n",
      "[libx264 @ 0x55e23da6bc80] i16 v,h,dc,p: 39% 19%  6% 36%\n",
      "[libx264 @ 0x55e23da6bc80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 16% 28% 11%  5%  5%  5%  8%  8%\n",
      "[libx264 @ 0x55e23da6bc80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 20% 24%  6%  4%  5%  5%  5%  4%\n",
      "[libx264 @ 0x55e23da6bc80] i8c dc,h,v,p: 46% 27% 21%  6%\n",
      "[libx264 @ 0x55e23da6bc80] Weighted P-Frames: Y:1.2% UV:1.2%\n",
      "[libx264 @ 0x55e23da6bc80] ref P L0: 72.8% 27.2%\n",
      "[libx264 @ 0x55e23da6bc80] ref B L0: 81.4% 18.6%\n",
      "[libx264 @ 0x55e23da6bc80] ref B L1: 93.8%  6.2%\n",
      "[libx264 @ 0x55e23da6bc80] kb/s:221.72\n",
      "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers\n",
      "  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)\n",
      "  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared\n",
      "  libavutil      58. 29.100 / 58. 29.100\n",
      "  libavcodec     60. 31.102 / 60. 31.102\n",
      "  libavformat    60. 16.100 / 60. 16.100\n",
      "  libavdevice    60.  3.100 / 60.  3.100\n",
      "  libavfilter     9. 12.100 /  9. 12.100\n",
      "  libswscale      7.  5.100 /  7.  5.100\n",
      "  libswresample   4. 12.100 /  4. 12.100\n",
      "  libpostproc    57.  3.100 / 57.  3.100\n",
      "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'resized_sphere_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    title           : Rotating Sphere with Axis DF\n",
      "    encoder         : Lavf60.16.100\n",
      "  Duration: 00:00:05.17, start: 0.000000, bitrate: 229 kb/s\n",
      "  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 300x300, 222 kb/s, 59.94 fps, 59.94 tbr, 166334 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "Stream mapping:\n",
      "  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))\n",
      "Press [q] to stop, [?] for help\n",
      "[libx264 @ 0x55cb0e976700] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n",
      "[libx264 @ 0x55cb0e976700] profile High, level 3.0, 4:2:0, 8-bit\n",
      "[libx264 @ 0x55cb0e976700] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=9 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\n",
      "Output #0, mp4, to 'padded_sphere_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    title           : Rotating Sphere with Axis DF\n",
      "    encoder         : Lavf60.16.100\n",
      "  Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 304x304, q=2-31, 59.94 fps, 166334 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "    Side data:\n",
      "      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\n",
      "[out#0/mp4 @ 0x55cb0e8f9900] video:160kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.812192%\n",
      "frame=  310 fps=0.0 q=-1.0 Lsize=     164kB time=00:00:05.12 bitrate= 262.7kbits/s speed=27.6x    \n",
      "[libx264 @ 0x55cb0e976700] frame I:2     Avg QP:14.86  size: 13683\n",
      "[libx264 @ 0x55cb0e976700] frame P:81    Avg QP:23.22  size:   933\n",
      "[libx264 @ 0x55cb0e976700] frame B:227   Avg QP:29.06  size:   264\n",
      "[libx264 @ 0x55cb0e976700] consecutive B-frames:  0.6%  3.9%  3.9% 91.6%\n",
      "[libx264 @ 0x55cb0e976700] mb I  I16..4: 41.7% 15.4% 42.9%\n",
      "[libx264 @ 0x55cb0e976700] mb P  I16..4:  2.8%  3.5%  1.9%  P16..4:  7.3%  2.2%  1.0%  0.0%  0.0%    skip:81.2%\n",
      "[libx264 @ 0x55cb0e976700] mb B  I16..4:  0.6%  0.7%  0.4%  B16..8:  6.4%  2.3%  0.4%  direct: 1.2%  skip:88.1%  L0:50.9% L1:44.8% BI: 4.3%\n",
      "[libx264 @ 0x55cb0e976700] 8x8 transform intra:37.9% inter:25.4%\n",
      "[libx264 @ 0x55cb0e976700] coded y,uvDC,uvAC intra: 48.9% 76.9% 46.5% inter: 2.0% 4.1% 1.1%\n",
      "[libx264 @ 0x55cb0e976700] i16 v,h,dc,p: 23% 34%  8% 35%\n",
      "[libx264 @ 0x55cb0e976700] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 18% 26%  8%  4%  4%  4%  6%  7%\n",
      "[libx264 @ 0x55cb0e976700] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 20% 24%  6%  5%  5%  5%  4%  4%\n",
      "[libx264 @ 0x55cb0e976700] i8c dc,h,v,p: 38% 35% 21%  7%\n",
      "[libx264 @ 0x55cb0e976700] Weighted P-Frames: Y:1.2% UV:1.2%\n",
      "[libx264 @ 0x55cb0e976700] ref P L0: 71.2% 28.8%\n",
      "[libx264 @ 0x55cb0e976700] ref B L0: 77.7% 22.3%\n",
      "[libx264 @ 0x55cb0e976700] ref B L1: 93.2%  6.8%\n",
      "[libx264 @ 0x55cb0e976700] kb/s:252.01\n",
      "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers\n",
      "  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)\n",
      "  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared\n",
      "  libavutil      58. 29.100 / 58. 29.100\n",
      "  libavcodec     60. 31.102 / 60. 31.102\n",
      "  libavformat    60. 16.100 / 60. 16.100\n",
      "  libavdevice    60.  3.100 / 60.  3.100\n",
      "  libavfilter     9. 12.100 /  9. 12.100\n",
      "  libswscale      7.  5.100 /  7.  5.100\n",
      "  libswresample   4. 12.100 /  4. 12.100\n",
      "  libpostproc    57.  3.100 / 57.  3.100\n",
      "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/davic/projects/IACV_project/bowling-analysis/data/recording_7/Tracked_output_7.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2mp41\n",
      "    encoder         : Lavf59.27.100\n",
      "  Duration: 00:00:05.25, start: 0.000000, bitrate: 10227 kb/s\n",
      "  Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 10224 kb/s, 59 fps, 59 tbr, 15104 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'padded_sphere_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    title           : Rotating Sphere with Axis DF\n",
      "    encoder         : Lavf60.16.100\n",
      "  Duration: 00:00:05.17, start: 0.000000, bitrate: 260 kb/s\n",
      "  Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 304x304, 253 kb/s, 59.94 fps, 59.94 tbr, 166334 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "Stream mapping:\n",
      "  Stream #0:0 (mpeg4) -> overlay\n",
      "  Stream #1:0 (h264) -> overlay\n",
      "  overlay:default -> Stream #0:0 (libx264)\n",
      "Press [q] to stop, [?] for help\n",
      "[libx264 @ 0x5626111efc40] using SAR=1/1\n",
      "[libx264 @ 0x5626111efc40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n",
      "[libx264 @ 0x5626111efc40] profile High, level 4.2, 4:2:0, 8-bit\n",
      "[libx264 @ 0x5626111efc40] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\n",
      "Output #0, mp4, to 'overlayed_left_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2mp41\n",
      "    encoder         : Lavf60.16.100\n",
      "  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 59 fps, 15104 tbn\n",
      "    Metadata:\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "    Side data:\n",
      "      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\n",
      "[out#0/mp4 @ 0x5626111eeb00] video:4212kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.092048%\n",
      "frame=  310 fps= 94 q=-1.0 Lsize=    4216kB time=00:00:05.20 bitrate=6637.1kbits/s speed=1.57x    \n",
      "[libx264 @ 0x5626111efc40] frame I:2     Avg QP:16.15  size:135020\n",
      "[libx264 @ 0x5626111efc40] frame P:173   Avg QP:18.64  size: 17932\n",
      "[libx264 @ 0x5626111efc40] frame B:135   Avg QP:22.49  size:  6962\n",
      "[libx264 @ 0x5626111efc40] consecutive B-frames: 34.2% 19.4% 11.6% 34.8%\n",
      "[libx264 @ 0x5626111efc40] mb I  I16..4: 20.6% 71.5%  7.8%\n",
      "[libx264 @ 0x5626111efc40] mb P  I16..4:  2.1%  7.3%  0.3%  P16..4: 23.5%  6.0%  3.0%  0.0%  0.0%    skip:57.9%\n",
      "[libx264 @ 0x5626111efc40] mb B  I16..4:  1.1%  3.2%  0.0%  B16..8: 19.5%  2.8%  0.1%  direct: 3.5%  skip:69.8%  L0:55.7% L1:39.8% BI: 4.5%\n",
      "[libx264 @ 0x5626111efc40] 8x8 transform intra:74.7% inter:77.0%\n",
      "[libx264 @ 0x5626111efc40] coded y,uvDC,uvAC intra: 43.7% 57.0% 17.4% inter: 6.1% 9.5% 0.9%\n",
      "[libx264 @ 0x5626111efc40] i16 v,h,dc,p: 37% 29% 21% 13%\n",
      "[libx264 @ 0x5626111efc40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 24% 34%  3%  1%  2%  1%  3%  3%\n",
      "[libx264 @ 0x5626111efc40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39% 26% 15%  4%  3%  4%  3%  4%  2%\n",
      "[libx264 @ 0x5626111efc40] i8c dc,h,v,p: 45% 25% 23%  7%\n",
      "[libx264 @ 0x5626111efc40] Weighted P-Frames: Y:0.0% UV:0.0%\n",
      "[libx264 @ 0x5626111efc40] ref P L0: 77.9% 22.1%\n",
      "[libx264 @ 0x5626111efc40] ref B L0: 82.4% 17.6%\n",
      "[libx264 @ 0x5626111efc40] ref B L1: 96.3%  3.7%\n",
      "[libx264 @ 0x5626111efc40] kb/s:6565.80\n",
      "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers\n",
      "  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)\n",
      "  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared\n",
      "  libavutil      58. 29.100 / 58. 29.100\n",
      "  libavcodec     60. 31.102 / 60. 31.102\n",
      "  libavformat    60. 16.100 / 60. 16.100\n",
      "  libavdevice    60.  3.100 / 60.  3.100\n",
      "  libavfilter     9. 12.100 /  9. 12.100\n",
      "  libswscale      7.  5.100 /  7.  5.100\n",
      "  libswresample   4. 12.100 /  4. 12.100\n",
      "  libpostproc    57.  3.100 / 57.  3.100\n",
      "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'overlayed_left_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    encoder         : Lavf60.16.100\n",
      "  Duration: 00:00:05.25, start: 0.000000, bitrate: 6572 kb/s\n",
      "  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 6566 kb/s, 59 fps, 59 tbr, 15104 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'padded_right_video.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    encoder         : Lavf60.16.100\n",
      "  Duration: 00:00:05.25, start: 0.000000, bitrate: 84 kb/s\n",
      "  Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 320x1080 [SAR 1026:1027 DAR 304:1027], 78 kb/s, 59 fps, 59 tbr, 15104 tbn (default)\n",
      "    Metadata:\n",
      "      handler_name    : VideoHandler\n",
      "      vendor_id       : [0][0][0][0]\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "Stream mapping:\n",
      "  Stream #0:0 (h264) -> hstack\n",
      "  Stream #1:0 (h264) -> hstack\n",
      "  hstack:default -> Stream #0:0 (libx264)\n",
      "Press [q] to stop, [?] for help\n",
      "[libx264 @ 0x5654bd3a2c00] using SAR=1/1\n",
      "[libx264 @ 0x5654bd3a2c00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n",
      "[libx264 @ 0x5654bd3a2c00] profile High, level 5.0, 4:2:0, 8-bit\n",
      "[libx264 @ 0x5654bd3a2c00] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\n",
      "Output #0, mp4, to '/home/davic/projects/IACV_project/bowling-analysis/data/recording_7/Final_7.mp4':\n",
      "  Metadata:\n",
      "    major_brand     : isom\n",
      "    minor_version   : 512\n",
      "    compatible_brands: isomiso2avc1mp41\n",
      "    encoder         : Lavf60.16.100\n",
      "  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 2240x1080 [SAR 1:1 DAR 56:27], q=2-31, 59 fps, 15104 tbn\n",
      "    Metadata:\n",
      "      encoder         : Lavc60.31.102 libx264\n",
      "    Side data:\n",
      "      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\n",
      "[out#0/mp4 @ 0x5654bd3a1980] video:3947kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.109104%\n",
      "frame=  310 fps= 95 q=-1.0 Lsize=    3952kB time=00:00:05.20 bitrate=6221.2kbits/s speed= 1.6x    \n",
      "[libx264 @ 0x5654bd3a2c00] frame I:2     Avg QP:15.66  size:147008\n",
      "[libx264 @ 0x5654bd3a2c00] frame P:123   Avg QP:18.32  size: 21487\n",
      "[libx264 @ 0x5654bd3a2c00] frame B:185   Avg QP:22.43  size:  5970\n",
      "[libx264 @ 0x5654bd3a2c00] consecutive B-frames:  6.1% 34.8% 24.2% 34.8%\n",
      "[libx264 @ 0x5654bd3a2c00] mb I  I16..4: 19.6% 70.9%  9.5%\n",
      "[libx264 @ 0x5654bd3a2c00] mb P  I16..4:  2.3%  7.1%  0.4%  P16..4: 23.9%  6.7%  2.9%  0.0%  0.0%    skip:56.7%\n",
      "[libx264 @ 0x5654bd3a2c00] mb B  I16..4:  1.0%  1.5%  0.0%  B16..8: 15.0%  2.4%  0.1%  direct: 3.2%  skip:76.8%  L0:53.0% L1:42.7% BI: 4.2%\n",
      "[libx264 @ 0x5654bd3a2c00] 8x8 transform intra:69.5% inter:74.2%\n",
      "[libx264 @ 0x5654bd3a2c00] coded y,uvDC,uvAC intra: 38.6% 57.3% 18.4% inter: 4.8% 9.4% 0.6%\n",
      "[libx264 @ 0x5654bd3a2c00] i16 v,h,dc,p: 37% 28% 18% 17%\n",
      "[libx264 @ 0x5654bd3a2c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 23% 28%  4%  2%  3%  2%  4%  4%\n",
      "[libx264 @ 0x5654bd3a2c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39% 25% 15%  4%  3%  4%  3%  4%  3%\n",
      "[libx264 @ 0x5654bd3a2c00] i8c dc,h,v,p: 46% 24% 22%  8%\n",
      "[libx264 @ 0x5654bd3a2c00] Weighted P-Frames: Y:0.0% UV:0.0%\n",
      "[libx264 @ 0x5654bd3a2c00] ref P L0: 77.5% 22.5%\n",
      "[libx264 @ 0x5654bd3a2c00] ref B L0: 83.5% 16.5%\n",
      "[libx264 @ 0x5654bd3a2c00] ref B L1: 97.4%  2.6%\n",
      "[libx264 @ 0x5654bd3a2c00] kb/s:6153.26\n"
     ]
    }
   ],
   "source": [
    "# Step 1: Get the height of the first video\n",
    "def get_video_height(video_path):\n",
    "    # Use ffprobe to get video dimensions\n",
    "    command = [\n",
    "        \"ffprobe\",\n",
    "        \"-v\",\n",
    "        \"error\",\n",
    "        \"-select_streams\",\n",
    "        \"v:0\",\n",
    "        \"-show_entries\",\n",
    "        \"stream=height\",\n",
    "        \"-of\",\n",
    "        \"default=noprint_wrappers=1:nokey=1\",\n",
    "        video_path,\n",
    "    ]\n",
    "    result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n",
    "    height = int(result.stdout.decode().strip())\n",
    "    return height\n",
    "\n",
    "\n",
    "# Get the height of the first video (left video)\n",
    "left_video_height = get_video_height(INPUT_VIDEO_PATH)\n",
    "\n",
    "# Step 2: Resize the second video (right video) to match the height of the first video\n",
    "# Construct the ffmpeg command for resizing the second video\n",
    "resized_right_video = \"resized_right_video.mp4\"\n",
    "padded_right_video = \"padded_right_video.mp4\"\n",
    "resize_command = [\n",
    "    \"ffmpeg\",\n",
    "    \"-i\",\n",
    "    INPUT_VIDEO_LANE,\n",
    "    \"-vf\",\n",
    "    f\"scale=-1:{left_video_height}\",  # Preserve aspect ratio and set height\n",
    "    \"-c:v\",\n",
    "    \"libx264\",\n",
    "    \"-preset\",\n",
    "    \"fast\",\n",
    "    \"-crf\",\n",
    "    \"18\",\n",
    "    resized_right_video,\n",
    "]\n",
    "subprocess.run(resize_command, check=True)\n",
    "\n",
    "# Add a 5-pixel black border to the left\n",
    "pad_command = [\n",
    "    \"ffmpeg\",\n",
    "    \"-i\",\n",
    "    str(resized_right_video),\n",
    "    \"-vf\",\n",
    "    \"pad=width=iw+5:height=ih:x=5:y=0:color=black\",\n",
    "    \"-c:v\",\n",
    "    \"libx264\",\n",
    "    \"-preset\",\n",
    "    \"fast\",\n",
    "    \"-crf\",\n",
    "    \"18\",\n",
    "    str(padded_right_video),\n",
    "]\n",
    "subprocess.run(pad_command, check=True)\n",
    "\n",
    "# Step 3: Resize the sphere video to a smaller size (you can adjust the size here)\n",
    "resized_sphere_video = \"resized_sphere_video.mp4\"\n",
    "padded_sphere_video = \"padded_sphere_video.mp4\"\n",
    "sphere_width = 300  # Set the desired width for the sphere video\n",
    "resize_sphere_command = [\n",
    "    \"ffmpeg\",\n",
    "    \"-i\",\n",
    "    INPUT_VIDEO_SPHERE,\n",
    "    \"-vf\",\n",
    "    f\"scale={sphere_width}:-1\",  # Adjust width, keep aspect ratio\n",
    "    \"-c:v\",\n",
    "    \"libx264\",\n",
    "    \"-preset\",\n",
    "    \"fast\",\n",
    "    \"-crf\",\n",
    "    \"18\",\n",
    "    resized_sphere_video,\n",
    "]\n",
    "subprocess.run(resize_sphere_command, check=True)\n",
    "\n",
    "# Add a 5-pixel black border around the entire video\n",
    "pad_command = [\n",
    "    \"ffmpeg\",\n",
    "    \"-i\",\n",
    "    str(resized_sphere_video),\n",
    "    \"-vf\",\n",
    "    \"pad=width=iw+5:height=ih+5:x=5:y=0:color=black\",\n",
    "    \"-c:v\",\n",
    "    \"libx264\",\n",
    "    \"-preset\",\n",
    "    \"fast\",\n",
    "    \"-crf\",\n",
    "    \"18\",\n",
    "    str(padded_sphere_video),\n",
    "]\n",
    "subprocess.run(pad_command, check=True)\n",
    "\n",
    "# Step 4: Overlay the sphere video on the top-right corner of the left video\n",
    "# We will use ffmpeg's overlay filter to place the resized sphere video on top of the left video\n",
    "overlayed_left_video = \"overlayed_left_video.mp4\"\n",
    "overlay_command = [\n",
    "    \"ffmpeg\",\n",
    "    \"-i\",\n",
    "    INPUT_VIDEO_PATH,\n",
    "    \"-i\",\n",
    "    padded_sphere_video,\n",
    "    \"-filter_complex\",\n",
    "    \"[0:v][1:v]overlay=W-w-0:0\",  # Top-right corner, with 10px margin\n",
    "    \"-c:v\",\n",
    "    \"libx264\",\n",
    "    \"-preset\",\n",
    "    \"fast\",\n",
    "    \"-crf\",\n",
    "    \"18\",\n",
    "    overlayed_left_video,\n",
    "]\n",
    "subprocess.run(overlay_command, check=True)\n",
    "\n",
    "# Step 5: Combine the overlayed left video and the resized right video side by side\n",
    "combine_command = [\n",
    "    \"ffmpeg\",\n",
    "    \"-i\",\n",
    "    overlayed_left_video,\n",
    "    \"-i\",\n",
    "    padded_right_video,\n",
    "    \"-filter_complex\",\n",
    "    \"[0:v][1:v]hstack=inputs=2\",  # Concatenate the videos side by side\n",
    "    \"-c:v\",\n",
    "    \"libx264\",\n",
    "    \"-preset\",\n",
    "    \"fast\",\n",
    "    \"-crf\",\n",
    "    \"18\",\n",
    "    OUTPUT_PATH,\n",
    "]\n",
    "subprocess.run(combine_command, check=True)\n",
    "\n",
    "# Clean up temporary files (optional)\n",
    "# Elimina i file se esistono\n",
    "for file_path in [\n",
    "    resized_right_video,\n",
    "    resized_sphere_video,\n",
    "    overlayed_left_video,\n",
    "    padded_sphere_video,\n",
    "    padded_right_video,\n",
    "]:\n",
    "    if os.path.exists(file_path):\n",
    "        os.remove(file_path)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
