{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "5a3bd93e", "metadata": {}, "outputs": [], "source": [ "import os, subprocess" ] }, { "cell_type": "code", "execution_count": 2, "id": "94180e22", "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "IPython.OutputArea.prototype._should_scroll = function(lines) {\n", " return false;\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%javascript\n", "IPython.OutputArea.prototype._should_scroll = function(lines) {\n", " return false;\n", "}" ] }, { "cell_type": "markdown", "id": "67c399ab", "metadata": {}, "source": [ "## Cut videos" ] }, { "cell_type": "code", "execution_count": 3, "id": "f96839aa", "metadata": {}, "outputs": [], "source": [ "to_cut = [\n", " [\"active_listening\", \"008229_hippoSIT_2022-05-17_21-44-43\", 120, 145],\n", " [\"escape_searching_jumps\", \"008229_hippoSIT_2022-05-16_20-36-44\", 330, 343],\n", " [\"escape_searching_jumps\", \"008229_hippoSIT_2022-05-16_20-36-44\", 60, 75],\n", " [\"pellet_search\", \"008229_hippoSIT_2022-05-20_15-54-39\", 1193, 1218],\n", " [\"pellet_search\", \"008229_hippoSIT_2022-05-20_15-54-39\", 560, 575],\n", " [\"grooming\", \"008229_hippoSIT_2022-05-20_15-54-39\", 1252, 1264]\n", "]\n", "\n", "to_cut = [\n", " ['DLC-test1', \"008229_hippoSIT_2022-05-17_21-44-43\", 0, 600],\n", " ['DLC-test2', \"008229_hippoSIT_2022-05-20_15-54-39\", 0, 600],\n", "]\n", "\n", "to_cut = [\n", " ['AL', \"008229_hippoSIT_2022-05-17_21-44-43\", 1000, 1500],\n", "]\n", "\n", "to_cut = [\n", " ['AL', \"009265_hippoSIT_2023-02-21_20-44-17\", 195, 250],\n", "]\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "6f0c28f1", "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers\n", " built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)\n", " configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared\n", " WARNING: library configuration mismatch\n", " avcodec configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc\n", " libavutil 56. 31.100 / 56. 31.100\n", " libavcodec 58. 54.100 / 58. 54.100\n", " libavformat 58. 29.100 / 58. 29.100\n", " libavdevice 58. 8.100 / 58. 8.100\n", " libavfilter 7. 57.100 / 7. 57.100\n", " libavresample 4. 0. 0 / 4. 0. 0\n", " libswscale 5. 5.100 / 5. 5.100\n", " libswresample 3. 5.100 / 3. 5.100\n", " libpostproc 55. 5.100 / 55. 5.100\n", "Input #0, avi, from '/home/sobolev/nevermind/Andrey/data/009265/009265_hippoSIT_2023-02-21_20-44-17/video.avi':\n", " Metadata:\n", " encoder : Lavf58.45.100\n", " Duration: 00:40:00.07, start: 0.000000, bitrate: 4583 kb/s\n", " Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 1024x768 [SAR 1:1 DAR 4:3], 4576 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc\n", "Output #0, avi, to '/home/sobolev/nevermind/Andrey/analysis/showroom/AL_009265_hippoSIT_2023-02-21_20-44-17_195_250.avi':\n", " Metadata:\n", " ISFT : Lavf58.29.100\n", " Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 1024x768 [SAR 1:1 DAR 4:3], q=2-31, 4576 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc\n", "Stream mapping:\n", " Stream #0:0 -> #0:0 (copy)\n", "Press [q] to stop, [?] for help\n", "frame= 1656 fps=0.0 q=-1.0 Lsize= 31613kB time=00:00:55.00 bitrate=4708.6kbits/s speed= 209x \n", "video:31567kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.143499%\n" ] } ], "source": [ "source = '/home/sobolev/nevermind/Andrey/data'\n", "report = '/home/sobolev/nevermind/Andrey/analysis/showroom'\n", "\n", "for record in to_cut:\n", " session = record[1]\n", " animal = session.split('_')[0]\n", " sessionpath = os.path.join(source, animal, session)\n", "\n", " f_name = \"%s_%s_%s_%s.avi\" % (record[0], record[1], record[2], record[3])\n", " in_path = os.path.join(source, animal, session, 'video.avi')\n", " out_path = os.path.join(report, f_name)\n", "\n", " cmd = \"ffmpeg -ss %s -i %s -c copy -t %s %s\" % (record[2], in_path, int(record[3] - record[2]), out_path)\n", " return_code = subprocess.call(cmd, shell=True)" ] }, { "cell_type": "code", "execution_count": 8, "id": "ed255066", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers\n", " built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)\n", " configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared\n", " WARNING: library configuration mismatch\n", " avcodec configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc\n", " libavutil 56. 31.100 / 56. 31.100\n", " libavcodec 58. 54.100 / 58. 54.100\n", " libavformat 58. 29.100 / 58. 29.100\n", " libavdevice 58. 8.100 / 58. 8.100\n", " libavfilter 7. 57.100 / 7. 57.100\n", " libavresample 4. 0. 0 / 4. 0. 0\n", " libswscale 5. 5.100 / 5. 5.100\n", " libswresample 3. 5.100 / 3. 5.100\n", " libpostproc 55. 5.100 / 55. 5.100\n", "Input #0, avi, from '/home/sobolev/nevermind/Andrey/analysis/PPC/AL_008229_hippoSIT_2022-05-17_21-44-43_1000_1500.avi':\n", " Metadata:\n", " encoder : Lavf58.29.100\n", " Duration: 00:08:20.40, start: 0.000000, bitrate: 2342 kb/s\n", " Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 1024x768 [SAR 1:1 DAR 4:3], 2338 kb/s, 20 fps, 20 tbr, 20 tbn, 20 tbc\n", "Stream mapping:\n", " Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\n", "Press [q] to stop, [?] for help\n", "[libx264 @ 0x55c9ab6208c0] using SAR=1/1\n", "[libx264 @ 0x55c9ab6208c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n", "[libx264 @ 0x55c9ab6208c0] profile High, level 3.1\n", "Output #0, avi, to '/home/sobolev/nevermind/Andrey/analysis/PPC/AL_008229_hippoSIT_2022-05-17_21-44-43_1000_1500.5x.avi':\n", " Metadata:\n", " ISFT : Lavf58.29.100\n", " Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 1024x768 [SAR 1:1 DAR 4:3], q=-1--1, 20 fps, 20 tbn, 20 tbc\n", " Metadata:\n", " encoder : Lavc58.54.100 libx264\n", " Side data:\n", " cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1\n", "frame= 2003 fps=149 q=-1.0 Lsize= 6774kB time=00:01:40.05 bitrate= 554.6kbits/s dup=0 drop=8005 speed=7.46x \n", "video:6720kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.797307%\n", "[libx264 @ 0x55c9ab6208c0] frame I:9 Avg QP:16.14 size: 39567\n", "[libx264 @ 0x55c9ab6208c0] frame P:505 Avg QP:23.07 size: 5120\n", "[libx264 @ 0x55c9ab6208c0] frame B:1489 Avg QP:24.43 size: 2646\n", "[libx264 @ 0x55c9ab6208c0] consecutive B-frames: 0.7% 0.3% 0.3% 98.7%\n", "[libx264 @ 0x55c9ab6208c0] mb I I16..4: 32.4% 56.4% 11.2%\n", "[libx264 @ 0x55c9ab6208c0] mb P I16..4: 2.0% 4.4% 0.6% P16..4: 17.4% 2.0% 2.0% 0.0% 0.0% skip:71.6%\n", "[libx264 @ 0x55c9ab6208c0] mb B I16..4: 0.6% 3.3% 0.3% B16..8: 12.6% 1.3% 0.3% direct: 0.4% skip:81.2% L0:53.7% L1:44.9% BI: 1.4%\n", "[libx264 @ 0x55c9ab6208c0] 8x8 transform intra:71.9% inter:85.0%\n", "[libx264 @ 0x55c9ab6208c0] coded y,uvDC,uvAC intra: 34.6% 17.9% 4.1% inter: 3.0% 3.7% 0.7%\n", "[libx264 @ 0x55c9ab6208c0] i16 v,h,dc,p: 27% 17% 21% 35%\n", "[libx264 @ 0x55c9ab6208c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 14% 55% 3% 1% 1% 1% 3% 1%\n", "[libx264 @ 0x55c9ab6208c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 15% 30% 7% 5% 5% 5% 7% 4%\n", "[libx264 @ 0x55c9ab6208c0] i8c dc,h,v,p: 78% 11% 10% 0%\n", "[libx264 @ 0x55c9ab6208c0] Weighted P-Frames: Y:0.0% UV:0.0%\n", "[libx264 @ 0x55c9ab6208c0] ref P L0: 42.9% 4.1% 34.9% 18.1%\n", "[libx264 @ 0x55c9ab6208c0] ref B L0: 64.7% 25.4% 9.8%\n", "[libx264 @ 0x55c9ab6208c0] ref B L1: 85.7% 14.3%\n", "[libx264 @ 0x55c9ab6208c0] kb/s:549.70\n" ] } ], "source": [ "in_file = out_path\n", "out_file = '.'.join([out_path.split('.')[0], '5x', 'avi'])\n", "\n", "cmd = 'ffmpeg -i %s -codec:v libx264 -filter:v \"setpts=0.2*PTS\" -strict -2 %s' % (in_file, out_file)\n", "return_code = subprocess.call(cmd, shell=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "0ebf4603", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }