
Recherche avancée
Autres articles (59)
-
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)
Sur d’autres sites (8180)
-
Flutter streaming with FFmpeg_flutter_kit not reaching server
22 juillet 2024, par Julio Cesar ReisI'm trying to stream my flutter screen to youtube using FFmpeg flutter kit. Everything seems fine but the output never reaches youtube server.


- 

-
log in using Yt flutter package.


-
create a broadcast


-
create the livestream and bind it to the broadcast


-
get the ingestion address through LiveStreamItem.cdn.ingestionInfo.ingestionAddress


-
stream the frames saved through FFmpeg :


final String rtmpUrl = "ls.cdn.ingestionInfo.ingestionAddress"


final String command = '-re -i $framePath -c:v libx264 -f flv $rtmpUrl';


await FFmpegKit.execute(command);














But at the end I get errors like SESSION_NOT_FOUND, or the stream never reaches the server which keeps my broadcast as ready and not active so I can't go live.


I've tried using the ingestionAddress plus the streamName separated by a slash, I've tried the direct stream using rtmp ://x.rtmp.youtube.com/live2/MY_API_KEY but none of that worked.


ERROR LOG :




I/flutter (19889) : ffmpeg version n6.0 I/flutter (19889) : Copyright
(c) 2000-2023 the FFmpeg developers I/flutter (19889) : I/flutter
(19889) : built with Android (7155654, based on r399163b1) clang
version 11.0.5
(https://android.googlesource.com/toolchain/llvm-project
87f1315dfbea7c137aa2e6d362dbb457e388158d) I/flutter (19889) :

configuration : —cross-prefix=aarch64-linux-android-
—sysroot=/Users/sue/Library/Android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot
—prefix=/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/ffmpeg
—pkg-config=/opt/homebrew/bin/pkg-config —enable-version3 —arch=aarch64 —cpu=armv8-a —target-os=android —enable-neon —enable-asm —enable-inline-asm —ar=aarch64-linux-android-ar —cc=aarch64-linux-android24-clang —cxx=aarch64-linux-android24-clang++ —ranlib=aarch64-linux-android-ranlib —strip=aarch64-linux-android-strip —nm=aarch64-linux-android-nm —extra-libs='-L/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib
-lndk_compat' —disable-autodetect —enable-cross-compile —enable-pic —enable-jni —enable-optimizations —enable-swscale —disable-static —enable-shared —enable-pthreads —enable-v4l2-m2m —disable-outdev=fbdev —disable-indev=fbdev —enable-small —disable-xmm-clobber-test —disable-debug —enable-lto —disable-neon I/flutter (19889) : libavutil 58. 2.100 / 58. 2.100 I/flutter
(19889) : libavcodec 60. 3.100 / 60. 3.100 I/flutter (19889) :

libavformat 60. 3.100 / 60. 3.100 I/flutter (19889) :

libavdevice 60. 1.100 / 60. 1.100 I/flutter (19889) :

libavfilter 9. 3.100 / 9. 3.100 I/flutter (19889) : libswscale
7. 1.100 / 7. 1.100 I/flutter (19889) : libswresample 4. 10.100 / 4. 10.100 I/flutter (19889) : Input #0, png_pipe, from
'/data/user/0/com.example.poc_stream/cache/frame.png' : I/flutter
(19889) : Duration : I/flutter (19889) : N/A I/flutter (19889) : ,
bitrate : I/flutter (19889) : N/A I/flutter (19889) : I/flutter
(19889) : Stream #0:0 I/flutter (19889) : : Video : png, rgba(pc),
412x771 I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter
(19889) : 25 tbr, I/flutter (19889) : 25 tbn I/flutter (19889) :
E/flutter (19889) : [ERROR:flutter/runtime/dart_vm_initializer.cc(41)]
Unhandled Exception : PlatformException(SESSION_NOT_FOUND, Session not
found., null, null) E/flutter (19889) : #0

StandardMethodCodec.decodeEnvelope
(package:flutter/src/services/message_codecs.dart:648:7) E/flutter
(19889) : #1 MethodChannel._invokeMethod
(package:flutter/src/services/platform_channel.dart:334:18) E/flutter
(19889) : E/flutter (19889) : #2

FFmpegKitFactory.mapToNullableSession
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_factory.dart:76:3)
E/flutter (19889) : E/flutter (19889) : #3

FFmpegKitInitializer._processCompleteCallbackEvent.
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_flutter_initializer.dart:213:48)
E/flutter (19889) : E/flutter (19889) :
I/flutter (19889) : Stream mapping : I/flutter (19889) : Stream #0:0 ->
#0:0 I/flutter (19889) : (png (native) -> h264 (libx264)) I/flutter (19889) : I/flutter (19889) : Press [q] to stop, [?] for help I/flutter
(19889) : [libx264 @ 0xb40000736398c190] using cpu capabilities : ARMv8
NEON I/flutter (19889) : [libx264 @ 0xb400007363a92e40] using cpu
capabilities : ARMv8 NEON I/flutter (19889) : [libx264 @
0xb40000736398c190] profile High 4:4:4 Predictive, level 3.0, 4:4:4,
8-bit I/flutter (19889) : [libx264 @ 0xb40000736398c190] 264 - core 164

- 

- H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - 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=4 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=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00 I/flutter (19889) : Output #0, flv, to
'rtmp ://x.rtmp.youtube.com/live2/x7k6-grm1-z15w-tqb7-akrt' : I/flutter
(19889) : Metadata : I/flutter (19889) : encoder :
I/flutter (19889) : Lavf60.3.100 I/flutter (19889) : I/flutter (19889) :
Stream #0:0 I/flutter (19889) : : Video : h264 ([7][0][0][0] / 0x0007),
yuv444p(tv, unknown/bt709/iec61966-2-1, progressive), 412x771, q=2-31
I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter (19889) :
1k tbn I/flutter (19889) : I/flutter (19889) : Metadata : I/flutter
(19889) : encoder : I/flutter (19889) : Lavc60.3.100
libx264 I/flutter (19889) : I/flutter (19889) : Side data :
I/flutter (19889) : I/flutter (19889) : cpb : I/flutter (19889) :
bitrate max/min/avg : 0/0/0 buffer size : 0 I/flutter (19889) :
vbv_delay : N/A I/flutter (19889) : I/flutter (19889) : Instance of
'Statistics' I/flutter (19889) : frame= 0 fps=0.0 q=0.0 size=

0kB time=N/A bitrate=N/A speed=N/A I/flutter (19889) : [libx264 @
0xb400007363a92e40] profile High 4:4:4 Predictive, level 3.0, 4:4:4,
8-bit I/flutter (19889) : [libx264 @ 0xb400007363a92e40] 264 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - 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=4 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=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00 I/flutter (19889) : Output #0, flv, to
'rtmp ://x.rtmp.youtube.com/live2/x7k6-grm1-z15w-tqb7-akrt' : I/flutter
(19889) : Metadata : I/flutter (19889) : encoder :
I/flutter (19889) : Lavf60.3.100 I/flutter (19889) : I/flutter (19889) :
Stream #0:0 I/flutter (19889) : : Video : h264 ([7][0][0][0] / 0x0007),
yuv444p(tv, unknown/bt709/iec61966-2-1, progressive), 412x771, q=2-31
I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter (19889) :
1k tbn I/flutter (19889) : I/flutter (19889) : Metadata : I/flutter
(19889) : encoder : I/flutter (19889) : Lavc60.3.100
libx264 I/flutter (19889) : I/flutter (19889) : Side data :
I/flutter (19889) : I/flutter (19889) : cpb : I/flutter (19889) :
bitrate max/min/avg : 0/0/0 buffer size : 0 I/flutter (19889) :
vbv_delay : N/A I/flutter (19889) : I/flutter (19889) : Instance of
'Statistics' I/flutter (19889) : frame= 0 fps=0.0 q=0.0 size=

0kB time=N/A bitrate=N/A speed=N/A I/flutter (19889) : [flv @
0xb4000074238c1c30] Failed to update header with correct duration.
I/flutter (19889) : [flv @ 0xb4000074238c1c30] Failed to update header
with correct filesize. I/flutter (19889) : Instance of 'Statistics'
I/flutter (19889) : frame= 1 fps=0.0 q=28.0 Lsize= 4kB
time=00:00:00.00 bitrate=N/A speed= 0x I/flutter (19889) :
video:4kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead : I/flutter (19889) : 8.895621% I/flutter (19889) :
I/flutter (19889) : [libx264 @ 0xb40000736398c190] frame I:1 Avg
QP:14.17 size : 2957 I/flutter (19889) : [libx264 @
0xb40000736398c190] mb I I16..4 : 1.4% 93.3% 5.3% I/flutter (19889) :
[libx264 @ 0xb40000736398c190] 8x8 transform intra:93.3% I/flutter
(19889) : [libx264 @ 0xb40000736398c190] coded y,u,v intra : 3.4% 1.4%
1.7% I/flutter (19889) : [libx264 @ 0xb40000736398c190] i16 v,h,dc,p : 78% 17% 6% 0% I/flutter (19889) : [libx264 @ 0xb40000736398c190] i8
v,h,dc,ddl,ddr,vr,hd,vl,hu : 36% 0% 64% 0% 0% 0% 0% 0% 0%
I/flutter (19889) : [libx264 @ 0xb40000736398c190] i4
v,h,dc,ddl,ddr,vr,hd,vl,hu : 49% 21% 14% 1% 3% 4% 3% 2% 3%
I/flutter (19889) : [libx264 @ 0xb40000736398c190] kb/s:591.40
I/flutter (19889) : ffmpeg version n6.0 I/flutter (19889) : Copyright
(c) 2000-2023 the FFmpeg developers I/flutter (19889) : I/flutter
(19889) : built with Android (7155654, based on r399163b1) clang
version 11.0.5
(https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d) I/flutter (19889) :

configuration : —cross-prefix=aarch64-linux-android-
—sysroot=/Users/sue/Library/Android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot
—prefix=/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/ffmpeg
—pkg-config=/opt/homebrew/bin/pkg-config —enable-version3 —arch=aarch64 —cpu=armv8-a —target-os=android —enable-neon —enable-asm —enable-inline-asm —ar=aarch64-linux-android-ar —cc=aarch64-linux-android24-clang —cxx=aarch64-linux-android24-clang++ —ranlib=aarch64-linux-android-ranlib —strip=aarch64-linux-android-strip —nm=aarch64-linux-android-nm —extra-libs='-L/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib
-lndk_compat' —disable-autodetect —enable-cross-compile —enable-pic —enable-jni —enable-optimizations —enable-swscale —disable-static —enable-shared —enable-pthreads —enable-v4l2-m2m —disable-outdev=fbdev —disable-indev=fbdev —enable-small —disable-xmm-clobber-test —disable-debug —enable-lto —disable-neon I/flutter (19889) : libavutil 58. 2.100 / 58. 2.100 I/flutter
(19889) : libavcodec 60. 3.100 / 60. 3.100 I/flutter (19889) :

libavformat 60. 3.100 / 60. 3.100 I/flutter (19889) :

libavdevice 60. 1.100 / 60. 1.100 I/flutter (19889) :

libavfilter 9. 3.100 / 9. 3.100 I/flutter (19889) : libswscale






- 

- 1.100 / 7. 1.100 I/flutter (19889) : libswresample 4. 10.100 / 4. 10.100 I/flutter (19889) : [flv @ 0xb4000074238dac30] Failed to
update header with correct duration. I/flutter (19889) : [flv @
0xb4000074238dac30] Failed to update header with correct filesize.
I/flutter (19889) : Instance of 'Statistics' I/flutter (19889) : frame=
1 fps=0.0 q=28.0 Lsize= 4kB time=00:00:00.00 bitrate=N/A speed=
0x I/flutter (19889) : video:4kB audio:0kB subtitle:0kB other
streams:0kB global headers:0kB muxing overhead : I/flutter (19889) :
8.895621% I/flutter (19889) : I/flutter (19889) : Input #0, png_pipe, from '/data/user/0/com.example.poc_stream/cache/frame.png' : I/flutter
(19889) : Duration : I/flutter (19889) : N/A I/flutter (19889) : ,
bitrate : I/flutter (19889) : N/A I/flutter (19889) : I/flutter
(19889) : Stream #0:0 I/flutter (19889) : : Video : png, rgba(pc),
412x771 I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter
(19889) : 25 tbr, I/flutter (19889) : 25 tbn I/flutter (19889) :
I/flutter (19889) : [libx264 @ 0xb400007363a92e40] frame I:1 Avg
QP:14.17 size : 2957 I/flutter (19889) : [libx264 @
0xb400007363a92e40] mb I I16..4 : 1.4% 93.3% 5.3% I/flutter (19889) :
[libx264 @ 0xb400007363a92e40] 8x8 transform intra:93.3% I/flutter
(19889) : [libx264 @ 0xb400007363a92e40] coded y,u,v intra : 3.4% 1.4%
1.7% I/flutter (19889) : [libx264 @ 0xb400007363a92e40] i16 v,h,dc,p : 78% 17% 6% 0% I/flutter (19889) : [libx264 @ 0xb400007363a92e40] i8
v,h,dc,ddl,ddr,vr,hd,vl,hu : 36% 0% 64% 0% 0% 0% 0% 0% 0%
I/flutter (19889) : [libx264 @ 0xb400007363a92e40] i4
v,h,dc,ddl,ddr,vr,hd,vl,hu : 49% 21% 14% 1% 3% 4% 3% 2% 3%
I/flutter (19889) : [libx264 @ 0xb400007363a92e40] kb/s:591.40
I/flutter (19889) : ffmpeg version n6.0 I/flutter (19889) : Copyright
(c) 2000-2023 the FFmpeg developers I/flutter (19889) : I/flutter
(19889) : built with Android (7155654, based on r399163b1) clang
version 11.0.5
(https://android.googlesource.com/toolchain/llvm-project
87f1315dfbea7c137aa2e6d362dbb457e388158d) I/flutter (19889) :

configuration : —cross-prefix=aarch64-linux-android-
—sysroot=/Users/sue/Library/Android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot
—prefix=/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/ffmpeg
—pkg-config=/opt/homebrew/bin/pkg-config —enable-version3 —arch=aarch64 —cpu=armv8-a —target-os=android —enable-neon —enable-asm —enable-inline-asm —ar=aarch64-linux-android-ar —cc=aarch64-linux-android24-clang —cxx=aarch64-linux-android24-clang++ —ranlib=aarch64-linux-android-ranlib —strip=aarch64-linux-android-strip —nm=aarch64-linux-android-nm —extra-libs='-L/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib
-lndk_compat' —disable-autodetect —enable-cross-compile —enable-pic —enable-jni —enable-optimizations —enable-swscale —disable-static —enable-shared —enable-pthreads —enable-v4l2-m2m —disable-outdev=fbdev —disable-indev=fbdev —enable-small —disable-xmm-clobber-test —disable-debug —enable-lto —disable-neon I/flutter (19889) : libavutil 58. 2.100 / 58. 2.100 I/flutter
(19889) : libavcodec 60. 3.100 / 60. 3.100 I/flutter (19889) :

libavformat 60. 3.100 / 60. 3.100 I/flutter (19889) :

libavdevice 60. 1.100 / 60. 1.100 I/flutter (19889) :

libavfilter 9. 3.100 / 9. 3.100 I/flutter (19889) : libswscale - 1.100 / 7. 1.100 I/flutter (19889) : libswresample 4. 10.100 / 4. 10.100 I/flutter (19889) : Input #0, png_pipe, from
'/data/user/0/com.example.poc_stream/cache/frame.png' : E/flutter
(19889) : [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled
Exception : PlatformException(SESSION_NOT_FOUND, Session not found.,
null, null) E/flutter (19889) : #0

StandardMethodCodec.decodeEnvelope
(package:flutter/src/services/message_codecs.dart:648:7) E/flutter
(19889) : #1 MethodChannel._invokeMethod
(package:flutter/src/services/platform_channel.dart:334:18) E/flutter
(19889) : E/flutter (19889) : #2

FFmpegKitFactory.mapToNullableSession
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_factory.dart:76:3)
E/flutter (19889) : E/flutter (19889) : #3

FFmpegKitInitializer._processCompleteCallbackEvent.
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_flutter_initializer.dart:213:48)
E/flutter (19889) : E/flutter (19889) :
I/flutter (19889) : Duration : I/flutter (19889) : N/A I/flutter
(19889) : , bitrate : I/flutter (19889) : N/A I/flutter (19889) :
I/flutter (19889) : Stream #0:0 I/flutter (19889) : : Video : png,
rgba(pc), 412x771 I/flutter (19889) : , I/flutter (19889) : 25 fps,
I/flutter (19889) : 25 tbr, I/flutter (19889) : 25 tbn I/flutter
(19889) : E/flutter (19889) :
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled
Exception : PlatformException(SESSION_NOT_FOUND, Session not found.,
null, null) E/flutter (19889) : #0

StandardMethodCodec.decodeEnvelope
(package:flutter/src/services/message_codecs.dart:648:7) E/flutter
(19889) : #1 MethodChannel._invokeMethod
(package:flutter/src/services/platform_channel.dart:334:18) E/flutter
(19889) : E/flutter (19889) : #2

FFmpegKitFactory.mapToNullableSession
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_factory.dart:76:3)
E/flutter (19889) : E/flutter (19889) : #3

FFmpegKitInitializer._processCompleteCallbackEvent.
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_flutter_initializer.dart:213:48)
E/flutter (19889) : E/flutter (19889) :
I/flutter (19889) : yzsFZWrI_Iw I/flutter (19889) : currentBc :
yzsFZWrI_Iw I/flutter (19889) : Stream mapping : I/flutter (19889) :

Stream #0:0 -> #0:0 I/flutter (19889) : (png (native) -> h264
(libx264)) I/flutter (19889) : I/flutter (19889) : Press [q] to stop,
[?] for help I/flutter (19889) : Stream mapping : I/flutter (19889) :

Stream #0:0 -> #0:0 I/flutter (19889) : (png (native) -> h264
(libx264)) I/flutter (19889) : I/flutter (19889) : Press [q] to stop,
[?] for help I/flutter (19889) : [libx264 @ 0xb4000073639665d0] using
cpu capabilities : ARMv8 NEON I/flutter (19889) : [libx264 @
0xb4000073639665d0] profile High 4:4:4 Predictive, level 3.0, 4:4:4,
8-bit I/flutter (19889) : [libx264 @ 0xb4000073639665d0] 264 - core 164






- 

- H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - 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=4 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=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00 I/flutter (19889) : Output #0, flv, to
'rtmp ://x.rtmp.youtube.com/live2/x7k6-grm1-z15w-tqb7-akrt' : I/flutter
(19889) : Metadata : I/flutter (19889) : encoder :
I/flutter (19889) : Lavf60.3.100 I/flutter (19889) : I/flutter (19889) :
Stream #0:0 I/flutter (19889) : : Video : h264 ([7][0][0][0] / 0x0007),
yuv444p(tv, unknown/bt709/iec61966-2-1, progressive), 412x771, q=2-31
I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter (19889) :
1k tbn I/flutter (19889) : I/flutter (19889) : Metadata : I/flutter
(19889) : encoder : I/flutter (19889) : Lavc60.3.100
libx264 I/flutter (19889) :






-
-
Capture video with pulse audio on a second camera with motioneye [closed]
8 mai 2023, par Damien JALLONOn a raspberrypi 4, bullseye os, motioneye service capture motion with camera on /dev/video0 and launch this script that capture video with pulse audio on a second camera on /dev/video2 :


echo $USER >> /home/damien/motion_ffmpeg.log
cd /home/damien
source /home/damien/.profile
source /home/damien/.bashrc
file="/home/damien/Vidéos/motionEye/motionEye_$(date +%Y%m%d_%H%M%S).mp4" # Création d'un nom de fichier horodaté
/usr/bin/ffmpeg -f pulse -thread_queue_size 4096 -ac 1 -channel_layout mono -i default -f v4l2 -thread_queue_size 4096 -i /dev/video2 -t 00:00:03 -vcodec mpeg4 $file >> /home/damien/motion_ffmpeg.log 2>&1 < /dev/null & 



The script work perfectly in standalone, in a terminal connected with the user "damien".
The log produce in standalone :




damien ffmpeg version 4.3.6-0+deb11u1+rpt1 Copyright (c) 2000-2023 the
FFmpeg developers built with gcc 10 (Debian 10.2.1-6)

configuration : —prefix=/usr —extra-version=0+deb11u1+rpt1
—toolchain=hardened —incdir=/usr/include/aarch64-linux-gnu —enable-gpl —disable-stripping —enable-avresample —disable-filter=resample —enable-gnutls —enable-ladspa —enable-libaom —enable-libass —enable-libbluray —enable-libbs2b —enable-libcaca —enable-libcdio —enable-libcodec2 —enable-libdav1d —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-librabbitmq —enable-librsvg —enable-librubberband —enable-libshine —enable-libsnappy —enable-libsoxr —enable-libspeex —enable-libsrt —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 —disable-mmal —enable-neon —enable-v4l2-request —enable-libudev —enable-epoxy —enable-sand —libdir=/usr/lib/aarch64-linux-gnu —arch=arm64 —enable-pocketsphinx —enable-libdc1394 —enable-libdrm —enable-vout-drm —enable-libiec61883 —enable-chromaprint —enable-frei0r —enable-libx264 —enable-shared

libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 /
4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100
Input #0, pulse, from 'default' :
Duration : N/A, start : 1683539947.001243, bitrate : 768 kb/s
Stream #0:0 : Audio : pcm_s16le, 48000 Hz, mono, s16, 768 kb/s Input #1, video4linux2,v4l2, from '/dev/video2' : Duration : N/A, start : 675.690589, bitrate : 147456 kb/s
Stream #1:0 : Video : rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc Stream
mapping : Stream #1:0 -> #0:0 (rawvideo (native) -> mpeg4 (native))

Stream #0:0 -> #0:1 (pcm_s16le (native) -> aac (native)) Press [q] to
stop, [?] for help Output #0, mp4, to
'/home/damien/Vidéos/motionEye/motionEye_20230508_115906.mp4' :

Metadata :
encoder : Lavf58.45.100
Stream #0:0 : Video : mpeg4 (mp4v / 0x7634706D), yuv420p(progressive), 640x480, q=2-31, 200 kb/s, 30 fps, 15360 tbn, 30
tbc
Metadata :
encoder : Lavc58.91.100 mpeg4
Side data :
cpb : bitrate max/min/avg : 0/0/200000 buffer size : 0 vbv_delay : N/A
Stream #0:1 : Audio : aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s
Metadata :
encoder : Lavc58.91.100 aac frame= 90 fps= 67 q=4.6 Lsize= 275kB time=00:00:03.00 bitrate= 750.5kbits/s dup=51 drop=0
speed=2.23x video:245kB audio:26kB subtitle:0kB other streams:0kB
global headers:0kB muxing overhead : 1.611457% [aac @ 0x55b808d2b0]
Qavg : 126.380



The motioneye service is launched under the user "damien".
The log of the script executed by motioneye when motion is detected :




damien ffmpeg version 4.3.6-0+deb11u1+rpt1 Copyright (c) 2000-2023 the
FFmpeg developers built with gcc 10 (Debian 10.2.1-6)

configuration : —prefix=/usr —extra-version=0+deb11u1+rpt1
—toolchain=hardened —incdir=/usr/include/aarch64-linux-gnu —enable-gpl —disable-stripping —enable-avresample —disable-filter=resample —enable-gnutls —enable-ladspa —enable-libaom —enable-libass —enable-libbluray —enable-libbs2b —enable-libcaca —enable-libcdio —enable-libcodec2 —enable-libdav1d —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-librabbitmq —enable-librsvg —enable-librubberband —enable-libshine —enable-libsnappy —enable-libsoxr —enable-libspeex —enable-libsrt —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 —disable-mmal —enable-neon —enable-v4l2-request —enable-libudev —enable-epoxy —enable-sand —libdir=/usr/lib/aarch64-linux-gnu —arch=arm64 —enable-pocketsphinx —enable-libdc1394 —enable-libdrm —enable-vout-drm —enable-libiec61883 —enable-chromaprint —enable-frei0r —enable-libx264 —enable-shared

libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 /
4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100
default : No such process



The message "default : No such process" seems to mean that there is no connection with the pulse server.


Why does ffmpeg not connect to pulse server when launched by motioneye ?


-
ffmpeg piped output producing incorrect metadata frame count with Python
6 décembre 2024, par XorgonUsing Python, I am attempting to use ffmpeg to compress videos and put them in a PowerPoint. This works great, however, the video files themselves have incorrect frame counts which can cause issues when I read from those videos in other code.


Edit for clarification : by "frame count" I mean the metadata frame count. The actual number of frames contained in the video is correct, but querying the metadata gives an incorrect frame count.


Having eliminated the PowerPoint aspect of the code, I've narrowed this down to the following minimal reproducing example of saving an output from an ffmpeg pipe :


from subprocess import Popen, PIPE

video_path = 'test_mp4.mp4'

ffmpeg_pipe = Popen(['ffmpeg',
 '-y', # Overwrite files
 '-i', f'{video_path}', # Input from file
 '-f', 'avi', # Output format
 '-c:v', 'libx264', # Codec
 '-'], # Output to pipe
 stdout=PIPE)

new_path = "piped_video.avi"
vid_file = open(new_path, "wb")
vid_file.write(ffmpeg_pipe.stdout.read())
vid_file.close()



I've tested several different videos. One small example video that I've tested can be found here.


I've tried a few different codecs with
avi
format and triedlibvpx
withwebm
format. For theavi
outputs, the frame count usually reads as1073741824
(2^30). Weirdly, for thewebm
format, the frame count read as-276701161105643264
.

This is a snippet I used to read the frame count, but one could also see the error by opening the video details in Windows Explorer and seeing the total time as something like 9942 hours, 3 minutes, and 14 seconds.


import cv2

video_path = 'test_mp4.mp4'
new_path = "piped_video.webm"

cap = cv2.VideoCapture(video_path)
print(f"Original video frame count: = {int(cap.get(cv2.CAP_PROP_FRAME_COUNT)):d}")
cap.release()

cap = cv2.VideoCapture(new_path)
print(f"Piped video frame count: = {int(cap.get(cv2.CAP_PROP_FRAME_COUNT)):d}")
cap.release()



For completeness, here is the ffmpeg output :


ffmpeg version 2023-06-11-git-09621fd7d9-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
 built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 58. 13.100 / 58. 13.100
 libavcodec 60. 17.100 / 60. 17.100
 libavformat 60. 6.100 / 60. 6.100
 libavdevice 60. 2.100 / 60. 2.100
 libavfilter 9. 8.101 / 9. 8.101
 libswscale 7. 3.100 / 7. 3.100
 libswresample 4. 11.100 / 4. 11.100
 libpostproc 57. 2.100 / 57. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_mp4.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 creation_time : 2022-08-10T12:54:09.000000Z
 Duration: 00:00:06.67, start: 0.000000, bitrate: 567 kb/s
 Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 384x264 [SAR 1:1 DAR 16:11], 563 kb/s, 30 fps, 30 tbr, 30k tbn (default)
 Metadata:
 creation_time : 2022-08-10T12:54:09.000000Z
 handler_name : Mainconcept MP4 Video Media Handler
 vendor_id : [0][0][0][0]
 encoder : AVC Coding
Stream mapping:
 Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0000018c68c8b9c0] using SAR=1/1
[libx264 @ 0000018c68c8b9c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0000018c68c8b9c0] profile High, level 2.1, 4:2:0, 8-bit
Output #0, avi, to 'pipe:':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 ISFT : Lavf60.6.100
 Stream #0:0(eng): Video: h264 (H264 / 0x34363248), yuv420p(progressive), 384x264 [SAR 1:1 DAR 16:11], q=2-31, 30 fps, 30 tbn (default)
 Metadata:
 creation_time : 2022-08-10T12:54:09.000000Z
 handler_name : Mainconcept MP4 Video Media Handler
 vendor_id : [0][0][0][0]
 encoder : Lavc60.17.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[out#0/avi @ 0000018c687f47c0] video:82kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.631060%
frame= 200 fps=0.0 q=-1.0 Lsize= 85kB time=00:00:06.56 bitrate= 106.5kbits/s speed=76.2x 
[libx264 @ 0000018c68c8b9c0] frame I:1 Avg QP:16.12 size: 3659
[libx264 @ 0000018c68c8b9c0] frame P:80 Avg QP:21.31 size: 647
[libx264 @ 0000018c68c8b9c0] frame B:119 Avg QP:26.74 size: 243
[libx264 @ 0000018c68c8b9c0] consecutive B-frames: 3.0% 53.0% 0.0% 44.0%
[libx264 @ 0000018c68c8b9c0] mb I I16..4: 17.6% 70.6% 11.8%
[libx264 @ 0000018c68c8b9c0] mb P I16..4: 0.8% 1.7% 0.6% P16..4: 17.6% 4.6% 3.3% 0.0% 0.0% skip:71.4%
[libx264 @ 0000018c68c8b9c0] mb B I16..4: 0.1% 0.3% 0.2% B16..8: 11.7% 1.4% 0.4% direct: 0.6% skip:85.4% L0:32.0% L1:59.7% BI: 8.3%
[libx264 @ 0000018c68c8b9c0] 8x8 transform intra:59.6% inter:62.4%
[libx264 @ 0000018c68c8b9c0] coded y,uvDC,uvAC intra: 48.5% 0.0% 0.0% inter: 3.5% 0.0% 0.0%
[libx264 @ 0000018c68c8b9c0] i16 v,h,dc,p: 19% 39% 25% 17%
[libx264 @ 0000018c68c8b9c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 25% 30% 3% 3% 4% 4% 4% 5%
[libx264 @ 0000018c68c8b9c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 20% 16% 6% 8% 8% 8% 5% 6%
[libx264 @ 0000018c68c8b9c0] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0000018c68c8b9c0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0000018c68c8b9c0] ref P L0: 76.2% 7.9% 11.2% 4.7%
[libx264 @ 0000018c68c8b9c0] ref B L0: 85.6% 12.9% 1.5%
[libx264 @ 0000018c68c8b9c0] ref B L1: 97.7% 2.3%
[libx264 @ 0000018c68c8b9c0] kb/s:101.19



So the question is : why does this happen, and how can one avoid it ?