
Recherche avancée
Autres articles (90)
-
Amélioration de la version de base
13 septembre 2013Jolie 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, parPHP5 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, parMultilang 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 connor449I 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">
 
 

 
 <activity>
 
 
 </activity> <activity>
 
 <action></action>

 <category></category>
 
 </activity>
 

Here is the specific camera command in 'MainActivity.kt`:
</manifest>


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







Here is my error :


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



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


-
FFMPEG changes speed when concat 2 or more different videos
13 novembre 2020, par Daniel Santos NetoI am using this code


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 '/myvideos/watermark.png' -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



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.


I guess it is something related to the bit rates.


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




Edited :


Complete log file :


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
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
 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
 libavutil 56. 31.100 / 56. 31.100
 libavcodec 58. 54.100 / 58. 54.100
 libavformat 58. 29.100 / 58. 29.100
 libavdevice 58. 8.100 / 58. 8.100
 libavfilter 7. 57.100 / 7. 57.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 5.100 / 5. 5.100
 libswresample 3. 5.100 / 3. 5.100
 libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/countdown10.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.29.100
 Duration: 00:00:10.02, start: 0.000000, bitrate: 122 kb/s
 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)
 Metadata:
 handler_name : VideoHandler
 Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 35 kb/s (default)
 Metadata:
 handler_name : IsoMedia File Produced by Google, 5-11-2011
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/video_222.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.29.100
 Duration: 00:00:30.60, start: 0.000000, bitrate: 37 kb/s
 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)
 Metadata:
 handler_name : ISO Media file produced by Google Inc. Created on: 10/16/2018.
 Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
 Metadata:
 handler_name : ISO Media file produced by Google Inc. Created on: 10/16/2018.
Stream mapping:
 Stream #0:0 (h264) -> concat:in0:v0
 Stream #0:1 (aac) -> concat:in0:a0
 Stream #1:0 (h264) -> concat:in1:v0
 Stream #1:1 (aac) -> concat:in1:a0
 concat:out:v0 -> Stream #0:0 (libx264)
 concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[libx264 @ 0x5645453b7a80] using SAR=1/1B time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A
[libx264 @ 0x5645453b7a80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x5645453b7a80] profile High, level 3.1
[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
Output #0, flv, to 'rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_160':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.29.100
 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)
 Metadata:
 encoder : Lavc58.54.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
 Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 encoder : Lavc58.54.100 aac
[flv @ 0x5645453ae580] Failed to update header with correct duration. 49.3kbits/s dup=0 drop=751 speed=1.33x
[flv @ 0x5645453ae580] Failed to update header with correct filesize.
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
video:164kB audio:53kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 15.473391%
[libx264 @ 0x5645453b7a80] frame I:2 Avg QP: 4.62 size: 10450
[libx264 @ 0x5645453b7a80] frame P:58 Avg QP:10.06 size: 1457
[libx264 @ 0x5645453b7a80] frame B:145 Avg QP:11.12 size: 427
[libx264 @ 0x5645453b7a80] consecutive B-frames: 4.9% 1.0% 4.4% 89.8%
[libx264 @ 0x5645453b7a80] mb I I16..4: 91.4% 2.8% 5.7%
[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%
[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%
[libx264 @ 0x5645453b7a80] 8x8 transform intra:5.5% inter:24.0%
[libx264 @ 0x5645453b7a80] coded y,uvDC,uvAC intra: 4.7% 22.9% 19.5% inter: 0.2% 4.2% 0.3%
[libx264 @ 0x5645453b7a80] i16 v,h,dc,p: 94% 4% 2% 0%
[libx264 @ 0x5645453b7a80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 18% 37% 3% 2% 3% 2% 2% 1%
[libx264 @ 0x5645453b7a80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 20% 21% 5% 3% 4% 3% 4% 3%
[libx264 @ 0x5645453b7a80] i8c dc,h,v,p: 78% 8% 12% 2%
[libx264 @ 0x5645453b7a80] Weighted P-Frames: Y:20.7% UV:20.7%
[libx264 @ 0x5645453b7a80] kb/s:32.64
[aac @ 0x564545421540] Qavg: 61548.156
avideo@ubuntu:~$



Also here is a video where you can see the process


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


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


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


the speed changes from speed=0.9 to speed=1.9




EDITED 2 :


I tried the FPS command as suggested and still the problem


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 '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/watermark.png' -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
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
 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
 libavutil 56. 31.100 / 56. 31.100
 libavcodec 58. 54.100 / 58. 54.100
 libavformat 58. 29.100 / 58. 29.100
 libavdevice 58. 8.100 / 58. 8.100
 libavfilter 7. 57.100 / 7. 57.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 5.100 / 5. 5.100
 libswresample 3. 5.100 / 3. 5.100
 libpostproc 55. 5.100 / 55. 5.100
[hls @ 0x5627c50f2800] Skip ('#EXT-X-VERSION:3')
[hls @ 0x5627c50f2800] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=' for reading
[hls @ 0x5627c50f2800] Skip ('#EXT-X-VERSION:3')
[http @ 0x5627c50fa940] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=' for reading
[hls @ 0x5627c50f2800] Skip ('#EXT-X-VERSION:3')
[hls @ 0x5627c50f2800] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/enc_5f80c54914f03.key' for reading
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index0.ts' for reading
[hls @ 0x5627c50f2800] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/enc_5f80c54914f03.key' for reading
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index0.ts' for reading
Input #0, hls, from 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=':
 Duration: 00:00:13.21, start: 1.460111, bitrate: 0 kb/s
 Program 0
 Metadata:
 variant_bitrate : 300000
 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
 Metadata:
 variant_bitrate : 300000
 Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 300000
 Program 1
 Metadata:
 variant_bitrate : 600000
 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
 Metadata:
 variant_bitrate : 600000
 Stream #0:3: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 600000
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5fa3f4e37ffb65.33430678_720.mp4?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmYTNmNGUzN2ZmYjY1LjMzNDMwNjc4IiwidGltZSI6MTYwNTI4MzExN30=':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.29.100
 Duration: 00:00:30.60, start: 0.000000, bitrate: 37 kb/s
 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)
 Metadata:
 handler_name : ISO Media file produced by Google Inc. Created on: 10/16/2018.
 Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
 Metadata:
 handler_name : ISO Media file produced by Google Inc. Created on: 10/16/2018.
Input #2, png_pipe, from '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/watermark.png':
 Duration: N/A, bitrate: N/A
 Stream #2:0: Video: png, rgba(pc), 1280x720 [SAR 3780:3780 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
 Stream #0:0 (h264) -> setdar
 Stream #0:1 (aac) -> concat:in0:a0
 Stream #1:0 (h264) -> setdar
 Stream #1:1 (aac) -> concat:in1:a0
 Stream #2:0 (png) -> overlay:overlay
 overlay -> Stream #0:0 (libx264)
 concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[libx264 @ 0x5627c5267f40] using SAR=1/1
[libx264 @ 0x5627c5267f40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x5627c5267f40] profile High, level 3.1
[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
Output #0, flv, to 'rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_161':
 Metadata:
 encoder : Lavf58.29.100
 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)
 Metadata:
 encoder : Lavc58.54.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 3000000/0/3000000 buffer size: 6000000 vbv_delay: -1
 Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 encoder : Lavc58.54.100 aac
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index1.ts' for reading
[hls @ 0x5627c50f2800] No longer receiving playlist 1 ('http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=')
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index2.ts' for reading
[flv @ 0x5627c52635c0] Failed to update header with correct duration.10.4kbits/s speed=1.43x
[flv @ 0x5627c52635c0] Failed to update header with correct filesize.
frame= 1313 fps= 43 q=-1.0 Lsize= 5937kB time=00:00:43.81 bitrate=1110.1kbits/s speed=1.43x
video:5662kB audio:218kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.976283%
[libx264 @ 0x5627c5267f40] frame I:70 Avg QP: 4.15 size: 27705
[libx264 @ 0x5627c5267f40] frame P:423 Avg QP: 4.16 size: 6930
[libx264 @ 0x5627c5267f40] frame B:820 Avg QP: 1.56 size: 1130
[libx264 @ 0x5627c5267f40] consecutive B-frames: 13.6% 7.9% 4.8% 73.7%
[libx264 @ 0x5627c5267f40] mb I I16..4: 69.2% 24.3% 6.4%
[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%
[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%
[libx264 @ 0x5627c5267f40] 8x8 transform intra:45.7% inter:71.9%
[libx264 @ 0x5627c5267f40] coded y,uvDC,uvAC intra: 36.1% 46.9% 43.4% inter: 0.4% 1.1% 0.7%
[libx264 @ 0x5627c5267f40] i16 v,h,dc,p: 93% 4% 3% 0%
[libx264 @ 0x5627c5267f40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 65% 8% 16% 1% 2% 3% 1% 2% 2%
[libx264 @ 0x5627c5267f40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 50% 20% 10% 3% 4% 5% 3% 4% 2%
[libx264 @ 0x5627c5267f40] i8c dc,h,v,p: 61% 10% 25% 4%
[libx264 @ 0x5627c5267f40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x5627c5267f40] ref P L0: 72.6% 2.7% 18.0% 6.7%
[libx264 @ 0x5627c5267f40] ref B L0: 89.1% 9.4% 1.5%
[libx264 @ 0x5627c5267f40] ref B L1: 98.0% 2.0%
[libx264 @ 0x5627c5267f40] kb/s:1059.69
[aac @ 0x5627c51d25c0] Qavg: 46028.516
avideo@ubuntu:~$



-
How to save media files to Heroku local storage with Django ?
25 juillet 2022, par Diyan KalaydzhievIm 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 :


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


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 ?


settings.py


MEDIA_ROOT = os.path.join(BASE_DIR,'EmotionTalk/AI_emotion_recognizer/recordings')
MEDIA_URL = '/'



urls.py


urlpatterns = [
path('admin/', admin.site.urls),
path('', include('EmotionTalk.emotion_talk_app.urls')),
path('auth/', include('EmotionTalk.auth_app.urls')),
path('api-token-auth/', views.obtain_auth_token),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)



views.py


def post(self, request):
 file_serializer = RecordingSerializer(data=request.data)

 if file_serializer.is_valid():
 file_serializer.save()

 file_name = file_serializer.data.get('recording')
 owner_id = file_serializer.data.get('owner_id')

 current_emotions_count = len(Profile.objects.get(user_id=owner_id).last_emotions)

 print(file_name)
 recognize_emotion.delay(file_name, owner_id)

 return Response({
 'data': file_serializer.data,
 'current_emotions_count': current_emotions_count
 }, status=status.HTTP_201_CREATED)

 return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)



tasks.py


def parse_arguments(filename):
import argparse
parser = argparse.ArgumentParser()

new_filename = filename.lstrip('v')

parser.add_argument("audio_path")
parser.add_argument("target_path")

args = parser.parse_args([f'EmotionTalk/AI_emotion_recognizer/recordings/{filename}',
 f'EmotionTalk/AI_emotion_recognizer/recordings/{new_filename}'])
audio_path = args.audio_path
target_path = args.target_path

if os.path.isfile(audio_path) and audio_path.endswith(".wav"):
 if not target_path.endswith(".wav"):
 target_path += ".wav"
 convert_audio(audio_path, target_path)
 return target_path
else:
 raise TypeError("The audio_path file you specified isn't appropriate for this operation")



parse_arguments is called from recognize_emotion