Recherche avancée

Médias (0)

Mot : - Tags -/médias

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (90)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Configuration spécifique pour PHP5

    4 février 2011, par

    PHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
    Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
    Modules spécifiques
    Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

Sur d’autres sites (8637)

  • How to get camera permission android [duplicate]

    22 mars 2021, par connor449

    I am trying to get permission to record video with ffmpeg on an android device.

    


    Here is my code from AndroidManifest.xml :

    


    <manifest package="com.example.camera">&#xA;    &#xA;    &#xA;&#xA;    &#xA;        <activity>&#xA;            &#xA;            &#xA;        </activity>        <activity>&#xA;            &#xA;                <action></action>&#xA;&#xA;                <category></category>&#xA;            &#xA;        </activity>&#xA;    &#xA;&#xA;Here is the specific camera command in &#x27;MainActivity.kt`:&#xA;</manifest>

    &#xA;

       FFmpeg.execute("-f android_camera -i 0:0 -r 30 -pixel_format bgr0 -t 00:00:05")&#xA;

    &#xA;

    &#xA;

    &#xA;

    Here is my error :

    &#xA;

    021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638402! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638403! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835009! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835010! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638407! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638408! count 0, type 0&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638402! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638403! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835009! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835010! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638407! count 0, type 3&#xA;2021-03-22 12:40:41.679 25156-25156/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638408! count 0, type 0&#xA;2021-03-22 12:40:41.681 25156-25156/com.example.camera E/ACameraManager: openCamera: connect camera device failed: Status(-8, EX_SERVICE_SPECIFIC): &#x27;1: validateClientPermissionsLocked:1041: Caller "" (PID 10222, UID 25156) cannot open camera "0" without camera permission&#x27;&#xA;2021-03-22 12:40:41.681 25156-25323/com.example.camera E/mobile-ffmpeg: [android_camera @ 0x7267a03e00] Failed to open camera with id 0, error: ACAMERA_ERROR_PERMISSION_DENIED.&#xA;2021-03-22 12:40:41.681 25156-25323/com.example.camera E/mobile-ffmpeg: [android_camera @ 0x7267a03e00] Failed to open camera.&#xA;2021-03-22 12:40:41.682 25156-25323/com.example.camera E/mobile-ffmpeg: [android_camera @ 0x7267a03e00] Failed to open android_camera.&#xA;2021-03-22 12:40:41.682 25156-25323/com.example.camera E/mobile-ffmpeg: 0:0: Generic error in an external library&#xA;2021-03-22 12:40:41.707 25156-25156/com.example.camera W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@4ac3524&#xA;

    &#xA;

    What am I doing wrong ? Every source I look at suggest the permissions I added above but it doesn't work.

    &#xA;

  • FFMPEG changes speed when concat 2 or more different videos

    13 novembre 2020, par Daniel Santos Neto

    I am using this code

    &#xA;

    ffmpeg   -y  -re -i "/myvideos/countdown10.mp4"   -re -i "/myvideos/video_218.mp4"  -re -i "/myvideos/video_220.mp4"   -re -i "/myvideos/video_221.mp4"  -re -i "/myvideos/video_222.mp4"   -re -i "/myvideos/countdown10.mp4"  -re -i &#x27;/myvideos/watermark.png&#x27;  -filter_complex " [0:v] [0:a]   [1:v] [1:a]   [2:v] [2:a]   [3:v] [3:a]   [4:v] [4:a]   [5:v] [5:a]  concat=n=6:v=1:a=1:unsafe=1 [vv] [a]; [vv][6:v]overlay=W-w-0:0[v]" -map "[v]" -map "[a]"  -preset veryfast -vcodec h264 -acodec aac -strict -2 -max_muxing_queue_size 1024 -y -s 1280x720  -ar 44100 -f flv rtmp://server/live/5fa3731d4f8a6_159&#xA;

    &#xA;

    the problem is, when I run it the process speed is a lot faster then the videos length, so I got disconnected from my livestream before the live finishes.

    &#xA;

    I guess it is something related to the bit rates.

    &#xA;

    also I notice depends on what video is transcoding the speed floats between 0.9x and 3.7x

    &#xA;

    frame= 4481 fps= 76 q=-1.0 Lsize= 16857kB time=00:03:13.21 bitrate= 714.7kbits/s dup=0 drop=393 speed=3.29x

    &#xA;

    Edited :

    &#xA;

    Complete log file :

    &#xA;

    avideo@ubuntu:~$ ffmpeg    -re -i "/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/countdown10.mp4"   -re -i "/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/video_222.mp4" -filter_complex " [0:v] [0:a]   [1:v] [1:a] concat=n=2:v=1:a=1:unsafe=1 [v] [a]" -map "[v]" -map "[a]"   -preset veryfast  -vcodec h264 -acodec aac -strict -2 -max_muxing_queue_size 1024 -y -s 1280x720 -ar 44100  -f flv rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_160&#xA;ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers&#xA;  built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)&#xA;  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&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/countdown10.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.29.100&#xA;  Duration: 00:00:10.02, start: 0.000000, bitrate: 122 kb/s&#xA;    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 83 kb/s, 5 fps, 5 tbr, 10240 tbn, 10 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 35 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : IsoMedia File Produced by Google, 5-11-2011&#xA;Input #1, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/video_222.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.29.100&#xA;  Duration: 00:00:30.60, start: 0.000000, bitrate: 37 kb/s&#xA;    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 26 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.&#xA;    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.&#xA;Stream mapping:&#xA;  Stream #0:0 (h264) -> concat:in0:v0&#xA;  Stream #0:1 (aac) -> concat:in0:a0&#xA;  Stream #1:0 (h264) -> concat:in1:v0&#xA;  Stream #1:1 (aac) -> concat:in1:a0&#xA;  concat:out:v0 -> Stream #0:0 (libx264)&#xA;  concat:out:a0 -> Stream #0:1 (aac)&#xA;Press [q] to stop, [?] for help&#xA;[libx264 @ 0x5645453b7a80] using SAR=1/1B time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A&#xA;[libx264 @ 0x5645453b7a80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2&#xA;[libx264 @ 0x5645453b7a80] profile High, level 3.1&#xA;[libx264 @ 0x5645453b7a80] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=2 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=5 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00&#xA;Output #0, flv, to &#x27;rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_160&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.29.100&#xA;    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 5 fps, 1k tbn, 5 tbc (default)&#xA;    Metadata:&#xA;      encoder         : Lavc58.54.100 libx264&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1&#xA;    Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)&#xA;    Metadata:&#xA;      encoder         : Lavc58.54.100 aac&#xA;[flv @ 0x5645453ae580] Failed to update header with correct duration. 49.3kbits/s dup=0 drop=751 speed=1.33x&#xA;[flv @ 0x5645453ae580] Failed to update header with correct filesize.&#xA;frame=  205 fps=6.7 q=-1.0 Lsize=     250kB time=00:00:40.58 bitrate=  50.5kbits/s dup=0 drop=762 speed=1.33x&#xA;video:164kB audio:53kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 15.473391%&#xA;[libx264 @ 0x5645453b7a80] frame I:2     Avg QP: 4.62  size: 10450&#xA;[libx264 @ 0x5645453b7a80] frame P:58    Avg QP:10.06  size:  1457&#xA;[libx264 @ 0x5645453b7a80] frame B:145   Avg QP:11.12  size:   427&#xA;[libx264 @ 0x5645453b7a80] consecutive B-frames:  4.9%  1.0%  4.4% 89.8%&#xA;[libx264 @ 0x5645453b7a80] mb I  I16..4: 91.4%  2.8%  5.7%&#xA;[libx264 @ 0x5645453b7a80] mb P  I16..4:  8.4%  0.4%  0.1%  P16..4:  2.0%  0.3%  0.1%  0.0%  0.0%    skip:88.6%&#xA;[libx264 @ 0x5645453b7a80] mb B  I16..4:  0.2%  0.1%  0.0%  B16..8:  0.9%  0.1%  0.0%  direct: 4.7%  skip:94.0%  L0:33.9% L1:63.4% BI: 2.7%&#xA;[libx264 @ 0x5645453b7a80] 8x8 transform intra:5.5% inter:24.0%&#xA;[libx264 @ 0x5645453b7a80] coded y,uvDC,uvAC intra: 4.7% 22.9% 19.5% inter: 0.2% 4.2% 0.3%&#xA;[libx264 @ 0x5645453b7a80] i16 v,h,dc,p: 94%  4%  2%  0%&#xA;[libx264 @ 0x5645453b7a80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 18% 37%  3%  2%  3%  2%  2%  1%&#xA;[libx264 @ 0x5645453b7a80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 20% 21%  5%  3%  4%  3%  4%  3%&#xA;[libx264 @ 0x5645453b7a80] i8c dc,h,v,p: 78%  8% 12%  2%&#xA;[libx264 @ 0x5645453b7a80] Weighted P-Frames: Y:20.7% UV:20.7%&#xA;[libx264 @ 0x5645453b7a80] kb/s:32.64&#xA;[aac @ 0x564545421540] Qavg: 61548.156&#xA;avideo@ubuntu:~$&#xA;

    &#xA;

    Also here is a video where you can see the process

    &#xA;

    https://tutorials.avideo.com/video/102/ffmpeg-changes-speed-when-concat-2-or-more-different-videos

    &#xA;

    this live should have exactly 40 seconds but finishes before then that

    &#xA;

    also look at this time position https://tutorials.avideo.com/video/102/ffmpeg-changes-speed-when-concat-2-or-more-different-videos?t=12

    &#xA;

    the speed changes from speed=0.9 to speed=1.9

    &#xA;

    speed=0.9 to speed=1.9

    &#xA;

    EDITED 2 :

    &#xA;

    I tried the FPS command as suggested and still the problem

    &#xA;

    avideo@ubuntu:~$ ffmpeg    -re -i "http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30="   -re -i "http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5fa3f4e37ffb65.33430678_720.mp4?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmYTNmNGUzN2ZmYjY1LjMzNDMwNjc4IiwidGltZSI6MTYwNTI4MzExN30="   -re -i &#x27;/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/watermark.png&#x27;  -filter_complex "  [0]setdar=16/9,scale=1280:720, fps=30[0:v];     [1]setdar=16/9,scale=1280:720, fps=30[1:v];     [0:v] [0:a]     [1:v] [1:a]   concat=n=2:v=1:a=1:unsafe=1 [vv] [a]; [vv][2:v]overlay=W-w-0:0[v]" -map "[v]" -map "[a]"   -c:v libx264 -b:v 3000k -maxrate 3000k -bufsize 6000k -g 50 -c:a aac -b:a 128k -ac 2 -s 1280x720  -ar 44100   -f flv rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_161&#xA;ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers&#xA;  built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)&#xA;  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&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;[hls @ 0x5627c50f2800] Skip (&#x27;#EXT-X-VERSION:3&#x27;)&#xA;[hls @ 0x5627c50f2800] Opening &#x27;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=&#x27; for reading&#xA;[hls @ 0x5627c50f2800] Skip (&#x27;#EXT-X-VERSION:3&#x27;)&#xA;[http @ 0x5627c50fa940] Opening &#x27;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=&#x27; for reading&#xA;[hls @ 0x5627c50f2800] Skip (&#x27;#EXT-X-VERSION:3&#x27;)&#xA;[hls @ 0x5627c50f2800] Opening &#x27;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/enc_5f80c54914f03.key&#x27; for reading&#xA;[hls @ 0x5627c50f2800] Opening &#x27;crypto&#x2B;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index0.ts&#x27; for reading&#xA;[hls @ 0x5627c50f2800] Opening &#x27;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/enc_5f80c54914f03.key&#x27; for reading&#xA;[hls @ 0x5627c50f2800] Opening &#x27;crypto&#x2B;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index0.ts&#x27; for reading&#xA;Input #0, hls, from &#x27;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=&#x27;:&#xA;  Duration: 00:00:13.21, start: 1.460111, bitrate: 0 kb/s&#xA;  Program 0&#xA;    Metadata:&#xA;      variant_bitrate : 300000&#xA;    Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 426x240 [SAR 640:639 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc&#xA;    Metadata:&#xA;      variant_bitrate : 300000&#xA;    Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp&#xA;    Metadata:&#xA;      variant_bitrate : 300000&#xA;  Program 1&#xA;    Metadata:&#xA;      variant_bitrate : 600000&#xA;    Stream #0:2: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc&#xA;    Metadata:&#xA;      variant_bitrate : 600000&#xA;    Stream #0:3: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp&#xA;    Metadata:&#xA;      variant_bitrate : 600000&#xA;Input #1, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5fa3f4e37ffb65.33430678_720.mp4?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmYTNmNGUzN2ZmYjY1LjMzNDMwNjc4IiwidGltZSI6MTYwNTI4MzExN30=&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.29.100&#xA;  Duration: 00:00:30.60, start: 0.000000, bitrate: 37 kb/s&#xA;    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 26 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.&#xA;    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.&#xA;Input #2, png_pipe, from &#x27;/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/watermark.png&#x27;:&#xA;  Duration: N/A, bitrate: N/A&#xA;    Stream #2:0: Video: png, rgba(pc), 1280x720 [SAR 3780:3780 DAR 16:9], 25 tbr, 25 tbn, 25 tbc&#xA;Stream mapping:&#xA;  Stream #0:0 (h264) -> setdar&#xA;  Stream #0:1 (aac) -> concat:in0:a0&#xA;  Stream #1:0 (h264) -> setdar&#xA;  Stream #1:1 (aac) -> concat:in1:a0&#xA;  Stream #2:0 (png) -> overlay:overlay&#xA;  overlay -> Stream #0:0 (libx264)&#xA;  concat:out:a0 -> Stream #0:1 (aac)&#xA;Press [q] to stop, [?] for help&#xA;[libx264 @ 0x5627c5267f40] using SAR=1/1&#xA;[libx264 @ 0x5627c5267f40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2&#xA;[libx264 @ 0x5627c5267f40] profile High, level 3.1&#xA;[libx264 @ 0x5627c5267f40] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 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=6 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=2 keyint=50 keyint_min=5 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=cbr mbtree=1 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=3000 vbv_bufsize=6000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00&#xA;Output #0, flv, to &#x27;rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_161&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.29.100&#xA;    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 3000 kb/s, 30 fps, 1k tbn, 30 tbc (default)&#xA;    Metadata:&#xA;      encoder         : Lavc58.54.100 libx264&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 3000000/0/3000000 buffer size: 6000000 vbv_delay: -1&#xA;    Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)&#xA;    Metadata:&#xA;      encoder         : Lavc58.54.100 aac&#xA;[hls @ 0x5627c50f2800] Opening &#x27;crypto&#x2B;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index1.ts&#x27; for reading&#xA;[hls @ 0x5627c50f2800] No longer receiving playlist 1 (&#x27;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=&#x27;)&#xA;[hls @ 0x5627c50f2800] Opening &#x27;crypto&#x2B;http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index2.ts&#x27; for reading&#xA;[flv @ 0x5627c52635c0] Failed to update header with correct duration.10.4kbits/s speed=1.43x&#xA;[flv @ 0x5627c52635c0] Failed to update header with correct filesize.&#xA;frame= 1313 fps= 43 q=-1.0 Lsize=    5937kB time=00:00:43.81 bitrate=1110.1kbits/s speed=1.43x&#xA;video:5662kB audio:218kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.976283%&#xA;[libx264 @ 0x5627c5267f40] frame I:70    Avg QP: 4.15  size: 27705&#xA;[libx264 @ 0x5627c5267f40] frame P:423   Avg QP: 4.16  size:  6930&#xA;[libx264 @ 0x5627c5267f40] frame B:820   Avg QP: 1.56  size:  1130&#xA;[libx264 @ 0x5627c5267f40] consecutive B-frames: 13.6%  7.9%  4.8% 73.7%&#xA;[libx264 @ 0x5627c5267f40] mb I  I16..4: 69.2% 24.3%  6.4%&#xA;[libx264 @ 0x5627c5267f40] mb P  I16..4:  2.0%  9.4%  1.6%  P16..4:  1.7%  0.3%  0.1%  0.0%  0.0%    skip:85.0%&#xA;[libx264 @ 0x5627c5267f40] mb B  I16..4:  0.1%  0.3%  0.2%  B16..8:  1.0%  0.1%  0.0%  direct: 0.6%  skip:97.6%  L0:57.9% L1:40.1% BI: 2.0%&#xA;[libx264 @ 0x5627c5267f40] 8x8 transform intra:45.7% inter:71.9%&#xA;[libx264 @ 0x5627c5267f40] coded y,uvDC,uvAC intra: 36.1% 46.9% 43.4% inter: 0.4% 1.1% 0.7%&#xA;[libx264 @ 0x5627c5267f40] i16 v,h,dc,p: 93%  4%  3%  0%&#xA;[libx264 @ 0x5627c5267f40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 65%  8% 16%  1%  2%  3%  1%  2%  2%&#xA;[libx264 @ 0x5627c5267f40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 50% 20% 10%  3%  4%  5%  3%  4%  2%&#xA;[libx264 @ 0x5627c5267f40] i8c dc,h,v,p: 61% 10% 25%  4%&#xA;[libx264 @ 0x5627c5267f40] Weighted P-Frames: Y:0.0% UV:0.0%&#xA;[libx264 @ 0x5627c5267f40] ref P L0: 72.6%  2.7% 18.0%  6.7%&#xA;[libx264 @ 0x5627c5267f40] ref B L0: 89.1%  9.4%  1.5%&#xA;[libx264 @ 0x5627c5267f40] ref B L1: 98.0%  2.0%&#xA;[libx264 @ 0x5627c5267f40] kb/s:1059.69&#xA;[aac @ 0x5627c51d25c0] Qavg: 46028.516&#xA;avideo@ubuntu:~$&#xA;

    &#xA;

  • How to save media files to Heroku local storage with Django ?

    25 juillet 2022, par Diyan Kalaydzhiev

    Im having a Django REST app with React for client. Im recording a file with React and sending in to Django. When i save it i modify it with ffmpeg and save it again in the same folder with a new name, the ffmpeg command looks like this :

    &#xA;

    os.system(f"ffmpeg -i {audio_path} -ac 1 -ar 16000 {target_path}")

    &#xA;

    Because i need a path for my audio both for opening and saving, i can't use cloud stores like "Bucket S3, Cloudinary etc.". And the fact that im using it only for a few seconds and then deleting it makes Heroku (the app is deployed there) the perfect place to save it non-persistent. The problem is that the file isn't getting saved in my library with media files. It saves in the postgre db but doesn't in my filesystem and when i try to access it my program returns that there isn't a file with that name. My question is How can i save media files in Heroku file system and how to access them ?

    &#xA;

    settings.py

    &#xA;

    MEDIA_ROOT = os.path.join(BASE_DIR,&#x27;EmotionTalk/AI_emotion_recognizer/recordings&#x27;)&#xA;MEDIA_URL = &#x27;/&#x27;&#xA;

    &#xA;

    urls.py

    &#xA;

    urlpatterns = [&#xA;path(&#x27;admin/&#x27;, admin.site.urls),&#xA;path(&#x27;&#x27;, include(&#x27;EmotionTalk.emotion_talk_app.urls&#x27;)),&#xA;path(&#x27;auth/&#x27;, include(&#x27;EmotionTalk.auth_app.urls&#x27;)),&#xA;path(&#x27;api-token-auth/&#x27;, views.obtain_auth_token),&#xA;] &#x2B; static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \&#xA;&#x2B; static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)&#xA;

    &#xA;

    views.py

    &#xA;

        def post(self, request):&#xA;    file_serializer = RecordingSerializer(data=request.data)&#xA;&#xA;    if file_serializer.is_valid():&#xA;        file_serializer.save()&#xA;&#xA;        file_name = file_serializer.data.get(&#x27;recording&#x27;)&#xA;        owner_id = file_serializer.data.get(&#x27;owner_id&#x27;)&#xA;&#xA;        current_emotions_count = len(Profile.objects.get(user_id=owner_id).last_emotions)&#xA;&#xA;        print(file_name)&#xA;        recognize_emotion.delay(file_name, owner_id)&#xA;&#xA;        return Response({&#xA;            &#x27;data&#x27;: file_serializer.data,&#xA;            &#x27;current_emotions_count&#x27;: current_emotions_count&#xA;        }, status=status.HTTP_201_CREATED)&#xA;&#xA;    return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)&#xA;

    &#xA;

    tasks.py

    &#xA;

    def parse_arguments(filename):&#xA;import argparse&#xA;parser = argparse.ArgumentParser()&#xA;&#xA;new_filename = filename.lstrip(&#x27;v&#x27;)&#xA;&#xA;parser.add_argument("audio_path")&#xA;parser.add_argument("target_path")&#xA;&#xA;args = parser.parse_args([f&#x27;EmotionTalk/AI_emotion_recognizer/recordings/{filename}&#x27;,&#xA;                          f&#x27;EmotionTalk/AI_emotion_recognizer/recordings/{new_filename}&#x27;])&#xA;audio_path = args.audio_path&#xA;target_path = args.target_path&#xA;&#xA;if os.path.isfile(audio_path) and audio_path.endswith(".wav"):&#xA;    if not target_path.endswith(".wav"):&#xA;        target_path &#x2B;= ".wav"&#xA;    convert_audio(audio_path, target_path)&#xA;    return target_path&#xA;else:&#xA;    raise TypeError("The audio_path file you specified isn&#x27;t appropriate for this operation")&#xA;

    &#xA;

    parse_arguments is called from recognize_emotion

    &#xA;