
Recherche avancée
Médias (91)
-
Géodiversité
9 septembre 2011, par ,
Mis à jour : Août 2018
Langue : français
Type : Texte
-
USGS Real-time Earthquakes
8 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
-
SWFUpload Process
6 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
-
La conservation du net art au musée. Les stratégies à l’œuvre
26 mai 2011
Mis à jour : Juillet 2013
Langue : français
Type : Texte
-
Podcasting Legal guide
16 mai 2011, par
Mis à jour : Mai 2011
Langue : English
Type : Texte
-
Creativecommons informational flyer
16 mai 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (68)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)
Sur d’autres sites (6979)
-
Flutter FFMPEG : Error setting profile baseline
9 avril 2021, par Raj DhakadFlutter-ffmpeg unable to set profile parameter. (I need to use profile so the rendered video can be played on WhatsApp).


I am converting.bmp images into a mp4 video. Other I have tested other praramets and the work great it's only -profile:v which seems to have some problem.


Everything works fine unless I use
-profile:v baseline
.

void _runFFmpeg() async {
 var dir = await getApplicationDocumentsDirectory();
 var output = await getExternalStorageDirectory();
 String videoSize = '${ImageWidth}x$ImageSize';
 print("${ImageWidth}x$ImageSize");
 var arguments = [
 "-y", // replace output file if it already exists
 "-framerate", "30", // framrate
 "-video_size", videoSize,
 "-pixel_format", "yuv420p",
 "-i", "${output.path}/frame_%d.bmp", 
 "-profile:v", "baseline",
 "-level", "3.0",
 "${output.path}/test.mp4"
 ];
 
 _flutterFFmpeg
 .executeWithArguments(arguments)
 .then((rc) => print("FFmpeg process exited with rc $rc"));
 

 print("Done Rendering");
 }



Logs


D/flutter-ffmpeg(26672): Running FFmpeg with arguments: [-y, -framerate, 30, -video_size, 720x600, -pixel_format, yuv420p, -i, /storage/emulated/0/Android/data/com.example.test/files/frame_%d.bmp, -profile:v, baseline, -level, 3.0, /storage/emulated/0/Android/data/com.example.test/files/test.mp4].
I/mobile-ffmpeg(26672): ffmpeg version v4.4-dev-416
I/mobile-ffmpeg(26672): Copyright (c) 2000-2020 the FFmpeg developers
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I/mobile-ffmpeg(26672): configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --target-os=android --enable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libx264 --enable-gpl --enable-libxvid --enable-gpl --enable-libx265 --enable-gpl --enable-libvidstab --enable-gpl --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
I/mobile-ffmpeg(26672): libavutil 56. 55.100 / 56. 55.100
I/mobile-ffmpeg(26672): libavcodec 58. 96.100 / 58. 96.100
I/mobile-ffmpeg(26672): libavformat 58. 48.100 / 58. 48.100
I/mobile-ffmpeg(26672): libavdevice 58. 11.101 / 58. 11.101
I/mobile-ffmpeg(26672): libavfilter 7. 87.100 / 7. 87.100
I/mobile-ffmpeg(26672): libswscale 5. 8.100 / 5. 8.100
I/mobile-ffmpeg(26672): libswresample 3. 8.100 / 3. 8.100
I/mobile-ffmpeg(26672): Input #0, image2, from '/storage/emulated/0/Android/data/com.example.test/files/frame_%d.bmp':
I/mobile-ffmpeg(26672): Duration:
I/mobile-ffmpeg(26672): 00:00:06.03
I/mobile-ffmpeg(26672): , start:
I/mobile-ffmpeg(26672): 0.000000
I/mobile-ffmpeg(26672): , bitrate:
I/mobile-ffmpeg(26672): N/A
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): Stream #0:0
I/mobile-ffmpeg(26672): : Video: bmp, yuv420p, 720x600
I/mobile-ffmpeg(26672): ,
I/mobile-ffmpeg(26672): 30 fps,
I/mobile-ffmpeg(26672): 30 tbr,
I/mobile-ffmpeg(26672): 30 tbn,
I/mobile-ffmpeg(26672): 30 tbc
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): Stream mapping:
I/mobile-ffmpeg(26672): Stream #0:0 -> #0:0
I/mobile-ffmpeg(26672): (bmp (native) -> h264 (libx264))
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): Press [q] to stop, [?] for help
W/mobile-ffmpeg(26672): [graph 0 input from stream 0:0 @ 0x7280948480] sws_param option is deprecated and ignored
E/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] Error setting profile baseline.
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] Possible profiles:
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] baseline
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] main
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high10
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high422
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high444
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100]
E/mobile-ffmpeg(26672): Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
I/mobile-ffmpeg(26672): Conversion failed!
D/flutter-ffmpeg(26672): FFmpeg exited with rc: 1
E/UIFirst (26672): failed to open /proc/26672/stuck_info, No such file or directory
I/chatty (26672): uid=12724(com.example.test) identical 2 lines
3
E/UIFirst (26672): failed to open /proc/26672/stuck_info, No such file or directory
I/chatty (26672): uid=12724(com.example.test) identical 1 line
E/UIFirst (26672): failed to open /proc/26672/stuck_info, No such file or directory



Flutter doctor -v


[√] Flutter (Channel stable, 2.0.1, on Microsoft Windows [Version 10.0.18362.836], locale en-US)
 • Flutter version 2.0.1 at C:\Users\Dell\flutter
 • Framework revision c5a4b4029c (5 weeks ago), 2021-03-04 09:47:48 -0800
 • Engine revision 40441def69
 • Dart version 2.12.0
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
 • Android SDK at C:\Users\Dell\AppData\Local\Android\sdk
 • Platform android-30, build-tools 29.0.3
 • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
 • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
 • All Android licenses accepted.
[√] Chrome - develop for the web
 • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 3.6)
 • Android Studio at C:\Program Files\Android\Android Studio
 • Flutter plugin version 45.1.1
 • Dart plugin version 192.7761
 • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
[√] VS Code (version 1.55.0)
 • VS Code at C:\Users\Dell\AppData\Local\Programs\Microsoft VS Code
 • Flutter extension version 3.21.0
[√] Connected device (2 available)
 • RMX1801 (mobile) • 8843cc23 • android-arm64 • Android 10 (API 29)
 • Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.114
• No issues found!



I also have tried changing package to min-gpl, https-gpl and video but no change.


-
ffmpeg x11grab to streamable format
2 juin 2021, par Jintor2 FFMPEG process


(1) generating a ffmpeg x11grab to a .mp4
(2) take the .mp4 and restream it simultaneously to multiple rtmp endpoints


ISSUE the generated file in (1) have this error "moov atom not found"


This is the command that generate (1) :


ffmpeg -re -y -f x11grab -draw_mouse 0 -framerate 30 
-video_size $RESOLUTION -i :$DISPLAY_NUM -c:a aac -c:v libx264 
-movflags +faststart -preset ultrafast -crf 28 -refs 4 -qmin 4 
-pix_fmt yuv420p -filter:v fps=30 file.mp4



in the (2) => when I try to ffmpeg -i file.mp4 output somewhere : I get "moov atom not found" so the (2) can't read or open (1).


What I'm I missing


in (1)
-movflags +faststart
doesn't seem to fix the issue

••••••• EDIT : more details on the context ••••••


I'm using openvidu : webrtc with kurento and coturn.


The record feature creates a .mp4 on the fly as the chat is going on.


To start the recording, there is an API call i can make to my server and it automatically stops when all users leaves the chatroom OR do an other api call to stop. see composed video in this link https://docs.openvidu.io/en/2.17.0/advanced-features/recording/


openvidu have also webhooks.


My problem is not how to stop ffmpeg, but getting FFMPEG to encode while the mp4 or other is being generated "on the fly".


There is 2 options :


OPTION 1 : individual => 1 .webm per camare => this .webm ffmpeg can restream as hls or RTMP => it's working.


OPTION 2 : ** but the issue is with "Composed" video => it's using ffmpeg to x11grab the session... but it's mp4 without moov ato, so ffmpeg don't do anything with this.


see the composed.sh script here
https://github.com/OpenVidu/openvidu/blob/master/openvidu-server/docker/openvidu-recording/scripts/composed.sh


***************** EDIT 3 *************


in the .sh this is the part that is creating the mp4


ffmpeg -y -f alsa -i pulse -f x11grab -draw_mouse 0
-framerate $FRAMERATE -video_size $RESOLUTION -i :$DISPLAY_NUM
-c:a aac -c:v libx264 -preset ultrafast
-crf 28 -refs 4 -qmin 4 -pix_fmt yuv420p
-filter:v fps=$FRAMERATE "/recordings/$VIDEO_ID/$VIDEO_NAME.$VIDEO_FORMAT"


How can I modify this to have better result example VP8 or VP9 with good quality .webm so that the ffpmeg second command(2) can encode it live...


**** EDIT 4 ********


I tried this it worked for 30 seconds and suddenly stopped


<./stop ffmpeg -y -f alsa -i pulse -f 
x11grab -draw_mouse 0 -framerate $FRAMERATE 
-video_size $RESOLUTION -i :$DISPLAY_NUM 
-c:v libx264 -b:v 1396k -b:a 128k -ar 44100 -maxrate 1369k 
-pix_fmt yuv420p -preset veryfast -tune zerolatency 
-c:a aac -ac 2 -profile:v main -flags -global_header 
-bufsize 969k -hls_time 1 -hls_list_size 0 -g 30 
-start_number 0 -streaming 1 -hls_playlist 1 
-lhls 1 -hls_playlist_type event -f hls "/recordings/$VIDEO_ID/$VIDEO_NAME".m3u8


N: [pulseaudio] main.c: Running in system mode, forcibly disabling SHM mode.
N: [pulseaudio] main.c: Running in system mode, forcibly disabling exit idle time.
Display in use -> :99
----------------------------------------
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
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, alsa, from 'pulse':
 Duration: N/A, start: 1617150428.783763, bitrate: 1536 kb/s
 Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
[x11grab @ 0x55e88a4e8780] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #1, x11grab, from ':99':
 Duration: N/A, start: 1617150428.837799, bitrate: N/A
 Stream #1:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
 Stream #1:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
 Stream #0:0 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x55e88a4f70c0] max bitrate less than average bitrate, assuming CBR
[libx264 @ 0x55e88a4f70c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 0x55e88a4f70c0] profile Main, level 4.0
[alsa @ 0x55e88a4c2e40] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619940.ts' for writing
Output #0, hls, to '/recordings/13391978436095-2/rec13390362561994.m3u8':
 Metadata:
 encoder : Lavf58.29.100
 Stream #0:0: Video: h264 (libx264), yuv420p(progressive), 1920x1080, q=-1--1, 1396 kb/s, 30 fps, 90k tbn, 30 tbc
 Metadata:
 encoder : Lavc58.54.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 1369000/0/1396000 buffer size: 969000 vbv_delay: -1
 Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s
 Metadata:
 encoder : Lavc58.54.100 aac
frame= 16 fps=0.0 q=21.0 size=N/A time=00:00:00.53 bitrate=N/A speed=1.06x 
frame= 31 fps= 31 q=16.0 size=N/A time=00:00:01.03 bitrate=N/A speed=1.02x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619941.ts' for writing
frame= 47 fps= 31 q=21.0 size=N/A time=00:00:01.56 bitrate=N/A speed=1.03x 
frame= 62 fps= 30 q=22.0 size=N/A time=00:00:02.06 bitrate=N/A speed=1.02x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619942.ts' for writing
frame= 77 fps= 30 q=24.0 size=N/A time=00:00:02.56 bitrate=N/A speed=1.01x 
frame= 92 fps= 30 q=22.0 size=N/A time=00:00:03.06 bitrate=N/A speed=0.999x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619943.ts' for writing
frame= 108 fps= 30 q=29.0 size=N/A time=00:00:03.60 bitrate=N/A speed= 1x 
frame= 124 fps= 30 q=21.0 size=N/A time=00:00:04.13 bitrate=N/A speed=1.01x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619944.ts' for writing
frame= 139 fps= 30 q=20.0 size=N/A time=00:00:04.63 bitrate=N/A speed=1.01x 
frame= 154 fps= 30 q=18.0 size=N/A time=00:00:05.13 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619945.ts' for writing
frame= 169 fps= 30 q=19.0 size=N/A time=00:00:05.63 bitrate=N/A speed= 1x 
frame= 185 fps= 30 q=19.0 size=N/A time=00:00:06.16 bitrate=N/A speed=1.01x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619946.ts' for writing
frame= 199 fps= 30 q=20.0 size=N/A time=00:00:06.63 bitrate=N/A speed= 1x 
frame= 215 fps= 30 q=19.0 size=N/A time=00:00:07.16 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619947.ts' for writing
frame= 230 fps= 30 q=19.0 size=N/A time=00:00:07.66 bitrate=N/A speed= 1x 
frame= 242 fps= 30 q=18.0 size=N/A time=00:00:08.06 bitrate=N/A speed=0.99x 
frame= 254 fps= 29 q=17.0 size=N/A time=00:00:08.46 bitrate=N/A speed=0.979x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619948.ts' for writing
frame= 276 fps= 30 q=17.0 size=N/A time=00:00:09.20 bitrate=N/A speed=1.01x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619949.ts' for writing
frame= 290 fps= 30 q=21.0 size=N/A time=00:00:09.66 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199410.ts' for writing
frame= 306 fps= 30 q=31.0 size=N/A time=00:00:10.20 bitrate=N/A speed= 1x 
frame= 322 fps= 30 q=21.0 size=N/A time=00:00:10.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199411.ts' for writing
frame= 337 fps= 30 q=21.0 size=N/A time=00:00:11.23 bitrate=N/A speed= 1x 
frame= 352 fps= 30 q=19.0 size=N/A time=00:00:11.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199412.ts' for writing
frame= 367 fps= 30 q=19.0 size=N/A time=00:00:12.23 bitrate=N/A speed= 1x 
frame= 382 fps= 30 q=18.0 size=N/A time=00:00:12.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199413.ts' for writing
frame= 397 fps= 30 q=18.0 size=N/A time=00:00:13.23 bitrate=N/A speed= 1x 
frame= 412 fps= 30 q=18.0 size=N/A time=00:00:13.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199414.ts' for writing
frame= 428 fps= 30 q=18.0 size=N/A time=00:00:14.26 bitrate=N/A speed= 1x 
frame= 443 fps= 30 q=17.0 size=N/A time=00:00:14.76 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199415.ts' for writing
frame= 458 fps= 30 q=18.0 size=N/A time=00:00:15.26 bitrate=N/A speed= 1x 
frame= 474 fps= 30 q=17.0 size=N/A time=00:00:15.80 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199416.ts' for writing
frame= 489 fps= 30 q=18.0 size=N/A time=00:00:16.30 bitrate=N/A speed= 1x 
frame= 504 fps= 30 q=17.0 size=N/A time=00:00:16.80 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199417.ts' for writing
frame= 520 fps= 30 q=20.0 size=N/A time=00:00:17.33 bitrate=N/A speed= 1x 
frame= 535 fps= 30 q=18.0 size=N/A time=00:00:17.83 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199418.ts' for writing
frame= 551 fps= 30 q=20.0 size=N/A time=00:00:18.36 bitrate=N/A speed= 1x 
frame= 566 fps= 30 q=19.0 size=N/A time=00:00:18.86 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199419.ts' for writing
frame= 581 fps= 30 q=20.0 size=N/A time=00:00:19.36 bitrate=N/A speed= 1x 
frame= 596 fps= 30 q=19.0 size=N/A time=00:00:19.86 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199420.ts' for writing
frame= 612 fps= 30 q=21.0 size=N/A time=00:00:20.40 bitrate=N/A speed= 1x 
frame= 626 fps= 30 q=20.0 size=N/A time=00:00:20.86 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199421.ts' for writing
frame= 641 fps= 30 q=21.0 size=N/A time=00:00:21.37 bitrate=N/A speed= 1x 
frame= 657 fps= 30 q=35.0 size=N/A time=00:00:21.90 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199422.ts' for writing
frame= 672 fps= 30 q=33.0 size=N/A time=00:00:22.40 bitrate=N/A speed= 1x 
frame= 687 fps= 30 q=23.0 size=N/A time=00:00:22.90 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199423.ts' for writing
frame= 703 fps= 30 q=23.0 size=N/A time=00:00:23.43 bitrate=N/A speed= 1x 
frame= 718 fps= 30 q=25.0 size=N/A time=00:00:23.93 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199424.ts' for writing
frame= 733 fps= 30 q=27.0 size=N/A time=00:00:24.44 bitrate=N/A speed= 1x 
frame= 749 fps= 30 q=26.0 size=N/A time=00:00:24.96 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199425.ts' for writing
frame= 764 fps= 30 q=28.0 size=N/A time=00:00:25.46 bitrate=N/A speed= 1x 
frame= 780 fps= 30 q=27.0 size=N/A time=00:00:26.00 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199426.ts' for writing
frame= 795 fps= 30 q=27.0 size=N/A time=00:00:26.50 bitrate=N/A speed= 1x 
frame= 810 fps= 30 q=26.0 size=N/A time=00:00:27.00 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199427.ts' for writing
frame= 825 fps= 30 q=29.0 size=N/A time=00:00:27.50 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
frame= 840 fps= 30 q=30.0 Lsize=N/A time=00:00:28.01 bitrate=N/A speed= 1x 
video:4635kB audio:404kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x55e88a4f70c0] frame I:42 Avg QP:12.88 size: 28020
[libx264 @ 0x55e88a4f70c0] frame P:798 Avg QP:13.11 size: 4473
[libx264 @ 0x55e88a4f70c0] mb I I16..4: 88.4% 0.0% 11.6%
[libx264 @ 0x55e88a4f70c0] mb P I16..4: 6.6% 0.0% 0.4% P16..4: 6.6% 1.9% 0.6% 0.0% 0.0% skip:83.8%
[libx264 @ 0x55e88a4f70c0] coded y,uvDC,uvAC intra: 18.8% 20.1% 10.1% inter: 1.7% 2.4% 0.1%
[libx264 @ 0x55e88a4f70c0] i16 v,h,dc,p: 55% 30% 12% 4%
[libx264 @ 0x55e88a4f70c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 27% 31% 2% 3% 2% 2% 1% 2%
[libx264 @ 0x55e88a4f70c0] i8c dc,h,v,p: 77% 9% 12% 1%
[libx264 @ 0x55e88a4f70c0] Weighted P-Frames: Y:1.1% UV:0.1%
[libx264 @ 0x55e88a4f70c0] kb/s:1355.98
[aac @ 0x55e88a4f8440] Qavg: 40876.258
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): null (null) cannot be parsed as a number
jq: error (at <stdin>:1): null (null) cannot be parsed as a number
jq: error: syntax error, unexpected '|' (Unix shell quoting issues?) at , line 1:
.hasAudio=false | .hasVideo=false | .duration= | .size= | .status="failed" 
jq: 1 compile error
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
Invalid duration specification for ss: -i
</stdin></stdin></stdin></stdin>


***** Edit 5 **********


no mather what format I choose, it stops after 20 to 30 secs.
the same line with .webm .mov .264 when it's not .mp4 ffmpeg seems to drop


-
Unable to properly save video in android ffmpeg app
22 mars 2021, par connor449I am trying to record and save a video with an ffmpeg app on android 10. I'm very new to android/mobile development.


Here is my manifest file :


<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.example.camera">
 
 
 

 


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

 <category></category>
 
 </activity>
 


</manifest>



As you can see, I am specifying permission to read/write data.


Here is my mainActivity :


package com.example.camera

//import android.R
import android.content.DialogInterface
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.arthenica.mobileffmpeg.FFmpeg


const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"

class MainActivity : AppCompatActivity() {
 override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_main)
 if (checkPermission()) {
 //main logic or main code
 FFmpeg.execute("-f android_camera -i 0:0 -r 30 -crf 0 -pixel_format yuv420p -t 00:00:05 test.mp4")

 // . write your main code to execute, It will execute if the permission is already given.
 } else {
 requestPermission()
 }
 }

 fun sendMessage(view:android.view.View){


 }

 private fun checkPermission(): Boolean {
 return if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)
 != PackageManager.PERMISSION_GRANTED
 ) {
 // Permission is not granted
 false
 } else true
 }

 private fun requestPermission() {
 ActivityCompat.requestPermissions(
 this, arrayOf(android.Manifest.permission.CAMERA),
 PERMISSION_REQUEST_CODE
 )
 }

 override fun onRequestPermissionsResult(
 requestCode: Int,
 permissions: Array<string>,
 grantResults: IntArray
 ) {
 when (requestCode) {
 PERMISSION_REQUEST_CODE -> if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED
 ) {
 Toast.makeText(applicationContext, "Permission Granted", Toast.LENGTH_SHORT)
 .show()

 // main logic
 } else {
 Toast.makeText(applicationContext, "Permission Denied", Toast.LENGTH_SHORT)
 .show()
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
 if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)
 != PackageManager.PERMISSION_GRANTED
 ) {
 showMessageOKCancel("You need to allow access permissions",
 DialogInterface.OnClickListener { dialog, which ->
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
 requestPermission()
 }
 })
 }
 }
 }
 }
 }

 private fun showMessageOKCancel(
 message: String,
 okListener: DialogInterface.OnClickListener
 ) {
 AlertDialog.Builder(this@MainActivity)
 .setMessage(message)
 .setPositiveButton("OK", okListener)
 .setNegativeButton("Cancel", null)
 .create()
 .show()
 }

 companion object {
 private const val PERMISSION_REQUEST_CODE = 200
 }
}

</string>


Here is my error message in the logs :


2021-03-22 16:31:34.509 9365-9448/com.example.camera I/AdrenoGLES: QUALCOMM build : 85037b7, I6e8b82193e
 Build Date : 12/19/19
 OpenGL ES Shader Compiler Version: EV031.27.05.03
 Local Branch : 
 Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.8.11.R1.10.00.00.576.016
 Remote Branch : NONE
 Reconstruct Branch : NOTHING
2021-03-22 16:31:34.509 9365-9448/com.example.camera I/AdrenoGLES: Build Config : S P 8.0.12 AArch64
2021-03-22 16:31:34.512 9365-9448/com.example.camera I/AdrenoGLES: PFP: 0x016ee187, ME: 0x00000000
2021-03-22 16:31:55.745 9365-9480/com.example.camera I/mobile-ffmpeg: ffmpeg version v4.4-dev-416
2021-03-22 16:31:55.745 9365-9480/com.example.camera I/mobile-ffmpeg: Copyright (c) 2000-2020 the FFmpeg developers
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --target-os=android --enable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: libavutil 56. 55.100 / 56. 55.100
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: libavcodec 58. 96.100 / 58. 96.100
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: libavformat 58. 48.100 / 58. 48.100
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: libavdevice 58. 11.101 / 58. 11.101
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: libavfilter 7. 87.100 / 7. 87.100
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: libswscale 5. 8.100 / 5. 8.100
2021-03-22 16:31:55.746 9365-9480/com.example.camera I/mobile-ffmpeg: libswresample 3. 8.100 / 3. 8.100
2021-03-22 16:31:55.750 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638402! count 0, type 3
2021-03-22 16:31:55.750 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638403! count 0, type 3
2021-03-22 16:31:55.750 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835009! count 0, type 3
2021-03-22 16:31:55.750 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835010! count 0, type 3
2021-03-22 16:31:55.750 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638407! count 0, type 3
2021-03-22 16:31:55.750 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638408! count 0, type 0
2021-03-22 16:31:55.751 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638402! count 0, type 3
2021-03-22 16:31:55.751 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638403! count 0, type 3
2021-03-22 16:31:55.751 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835009! count 0, type 3
2021-03-22 16:31:55.751 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1835010! count 0, type 3
2021-03-22 16:31:55.751 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638407! count 0, type 3
2021-03-22 16:31:55.751 9365-9365/com.example.camera E/ACameraMetadata: filterDurations: malformed duration key 1638408! count 0, type 0
2021-03-22 16:31:55.797 9365-9480/com.example.camera W/mobile-ffmpeg: [android_camera @ 0x726794b600] Requested video_size 0x0 not available, falling back to 4608x3456
2021-03-22 16:31:55.804 9365-9480/com.example.camera I/mobile-ffmpeg: [android_camera @ 0x726794b600] Android camera capture session is active.
2021-03-22 16:31:56.097 9365-9480/com.example.camera I/mobile-ffmpeg: Input #0, android_camera, from '0:0':
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: Duration: 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: N/A
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: , start: 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: 28486.157692
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: , bitrate: 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: N/A
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: Stream #0:0
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: : Video: rawvideo (NV21 / 0x3132564E), nv21, 4608x3456
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: , 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: 30 fps, 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: 30 tbr, 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: 1000000000.00 tbn, 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: 1000000000.00 tbc
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: Side data:
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: 
2021-03-22 16:31:56.098 9365-9480/com.example.camera I/mobile-ffmpeg: displaymatrix: rotation of -90.00 degrees
2021-03-22 16:31:56.098 9365-9480/com.example.camera W/mobile-ffmpeg: Codec AVOption crf (Select the quality for constant quality mode) specified for output file #0 (test.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
2021-03-22 16:31:56.098 9365-9480/com.example.camera E/mobile-ffmpeg: test.mp4: Read-only file system
2021-03-22 16:31:56.259 9365-9392/com.example.camera D/ACameraDevice: Device error received, code 5, frame number 1, request ID 0, subseq ID 0
2021-03-22 16:31:56.260 9365-9666/com.example.camera D/ACameraDevice: Device error received, code 5, frame number 2, request ID 0, subseq ID 0
2021-03-22 16:31:56.260 9365-9666/com.example.camera D/ACameraDevice: Device error received, code 5, frame number 3, request ID 0, subseq ID 0
2021-03-22 16:31:56.260 9365-9666/com.example.camera D/ACameraDevice: Device error received, code 3, frame number 4, request ID 0, subseq ID 0
2021-03-22 16:31:56.260 9365-9666/com.example.camera D/ACameraDevice: Device error received, code 3, frame number 5, request ID 0, subseq ID 0
2021-03-22 16:31:56.261 9365-9666/com.example.camera D/ACameraDevice: Device error received, code 3, frame number 6, request ID 0, subseq ID 0
2021-03-22 16:31:56.607 9365-9365/com.example.camera W/ACameraCaptureSession: Device is closed but session 0 is not notified
2021-03-22 16:31:56.608 9365-9480/com.example.camera I/mobile-ffmpeg: [android_camera @ 0x726794b600] Android camera capture session was closed.
2021-03-22 16:31:56.637 9365-9365/com.example.camera I/Choreographer: Skipped 58 frames! The application may be doing too much work on its main thread.
2021-03-22 16:31:56.678 9365-9448/com.example.camera I/OpenGLRenderer: Davey! duration=1018ms; Flags=1, IntendedVsync=17591318171185, Vsync=17592284837813, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=17592296938401, AnimationStart=17592297214183, PerformTraversalsStart=17592304079965, DrawStart=17592327848144, SyncQueued=17592334185436, SyncStart=17592334982572, IssueDrawCommandsStart=17592335124343, SwapBuffers=17592336519968, FrameCompleted=17592337443926, DequeueBufferDuration=165000, QueueBufferDuration=255000, 



The error I'm particularity confused about is :


2021-03-22 16:31:56.098 9365-9480/com.example.camera E/mobile-ffmpeg: test.mp4: Read-only file system



I thought I specified the appropriate permissions in the manifest file ? Please advise.