Recherche avancée

Médias (91)

Autres articles (61)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par 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, par

    Unlike 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 (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (8845)

  • Flutter streaming with FFmpeg_flutter_kit not reaching server

    22 juillet 2024, par Julio Cesar Reis

    I'm trying to stream my flutter screen to youtube using FFmpeg flutter kit. Everything seems fine but the output never reaches youtube server.

    


      

    1. log in using Yt flutter package.

      


    2. 


    3. create a broadcast

      


    4. 


    5. create the livestream and bind it to the broadcast

      


    6. 


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

      


    8. 


    9. 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);

      


    10. 


    


    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. 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
    2. 


    3. 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
    4. 


    


      

    • 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) :
    • 


    


    


  • Why is there an audio delay on recording video stream with ffmpeg ?

    25 décembre 2023, par mqwerty

    I am trying to record video and audio stream (Line in Microphone Analog Audio) which are streaming from broadcaster computer with those parameters in the recorder computer ;

    


    ffmpeg record parameters :

    


    /usr/bin/ffmpeg -y -buffer_size max -thread_queue_size 8192 -i udp://225.0.5.11:1026 -buffer_size max -thread_queue_size 8192 -i udp://225.0.5.11:1032 -map 0:v -map 1:a -metadata title=COMPUTER-01_metadata_file -metadata creation_time="2023-12-25 13:25:29" -threads 0 -c:v copy -c:a copy -movflags +faststart -f segment -segment_time 01:00:00 -segment_atclocktime 1 -reset_timestamps 1 -strftime 1 -segment_format mp4 -t 120 test_record_video_with_audio_%Y-%m-%d_%H-%M-%S.mp4


    


    The ffmpeg started and finished successfully, but when I open the recorded video with mpv like (mpv test_record_video_with_audio.mp4), I realized that there is a 5-6 seconds delay in audio. How can I prevent the delay of audio in the recorded mp4 file without using offset ? My last option is setting offset but I think that it is not safe according to any changes in network or etc.

    


    FFMPEG version on both computer :

    


    ffmpeg version 4.2.9 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 8 (GCC)


    


    BROADCASTER COMPUTER :

    


    sysctl.conf :

    


    No added configurations.


    


    ethtool output :

    


    Supported ports: [ TP ]
Supported link modes:   100baseT/Full
                        1000baseT/Full
                        10000baseT/Full
                        2500baseT/Full
                        5000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes:  100baseT/Full
                        1000baseT/Full
                        10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
    Current message level: 0x00000007 (7)
                           drv probe link
Link detected: yes


    


    ffmpeg video stream :

    


    ffmpeg -fflags +genpts -f x11grab -framerate 30 -video_size uhd2160 -i :0 -c:v hevc_nvenc -preset fast -pix_fmt bgr0 -b:v 3M -g 25 -an -f mpegts udp://225.0.5.11:1026


    


    ffmpeg audio stream :

    


    ffmpeg -f alsa -i hw:0,0 -c:a aac -ar 48000 -b:a 1024K -ab 512k -f rtp_mpegts rtp://225.0.5.11:1032


    


    nvidia-smi :

    


    | NVIDIA-SMI 535.129.03             Driver Version: 535.129.03   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA T400 4GB                Off | 00000000:5B:00.0 Off |                  N/A |
| 38%   38C    P8              N/A /  31W |    207MiB /  4096MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA RTX A4000               Off | 00000000:9E:00.0 Off |                  Off |
| 41%   59C    P2              41W / 140W |    766MiB / 16376MiB |     17%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      3227      G   /usr/libexec/Xorg                           114MiB |
|    0   N/A  N/A      3423      G   /usr/bin/gnome-shell                         87MiB |
|    1   N/A  N/A      3227      G   /usr/libexec/Xorg                           285MiB |
|    1   N/A  N/A      3423      G   /usr/bin/gnome-shell                         91MiB |
|    1   N/A  N/A      3762      C   ffmpeg                                      372MiB |
+---------------------------------------------------------------------------------------+


    


    lscpu output :

    


    

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              96
On-line CPU(s) list: 0-95
Thread(s) per core:  2
Core(s) per socket:  24
Socket(s):           2
NUMA node(s):        2
Vendor ID:           GenuineIntel
BIOS Vendor ID:      Intel(R) Corporation
CPU family:          6
Model:               85
Model name:          Intel(R) Xeon(R) Gold 5220R CPU @ 2.20GHz
BIOS Model name:     Intel(R) Xeon(R) Gold 5220R CPU @ 2.20GHz
Stepping:            7
CPU MHz:             2200.000
CPU max MHz:         4000.0000
CPU min MHz:         1000.0000
BogoMIPS:            4400.00
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            1024K
L3 cache:            36608K
NUMA node0 CPU(s):   0-23,48-71
NUMA node1 CPU(s):   24-47,72-95


    


    OS : CentOS Stream release 8


    


    RECORDER COMPUTER :

    


    sysctl.conf :

    


    net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem= 4096 87380 16777216
net.ipv4.tcp_wmem= 4096 65536 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 0
net.core.netdev_max_backlog = 50000
net.core.optmem_max=25165824


    


    lscpu output :

    


    Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              96
On-line CPU(s) list: 0-95
Thread(s) per core:  2
Core(s) per socket:  24
Socket(s):           2
NUMA node(s):        2
Vendor ID:           GenuineIntel
BIOS Vendor ID:      Intel
CPU family:          6
Model:               106
Model name:          Intel(R) Xeon(R) Gold 5318Y CPU @ 2.10GHz
BIOS Model name:     Intel(R) Xeon(R) Gold 5318Y CPU @ 2.10GHz
Stepping:            6
CPU MHz:             3400.000
CPU max MHz:         3400.0000
CPU min MHz:         800.0000
BogoMIPS:            4200.00
Virtualization:      VT-x
L1d cache:           48K
L1i cache:           32K
L2 cache:            1280K
L3 cache:            36864K


    


    ethtool output :

    


    Supported ports: [ TP ]
    Supported link modes:   1000baseT/Full
                            10000baseT/Full
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  1000baseT/Full
                            10000baseT/Full
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 10000Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 12
    Transceiver: internal
    MDI-X: Unknown
    Supports Wake-on: d
    Wake-on: d
        Current message level: 0x00002081 (8321)
                               drv tx_err hw
    Link detected: yes


    


    No NVIDIA Graphic Driver

    


    OS : CentOS Stream release 8


    


    I tried audio encoding while recording like :

    


    "-c:a", "aac",  
"-ar", "48000", 
"-b:a", "128k",


    


    I also tried :

    


    "aresample=async=1"



    


    Unfortunately,these did not have any improvements on preventing latency in audio.

    


  • How to Track Website Visitors : Benefits, Tools and FAQs

    31 août 2023, par Erin — Analytics Tips, Marketing

    Businesses spend a ton of time, money and effort into creating websites that are not only helpful and captivating, but also highly effective at converting visitors. They’ll create content, revise designs, add new pages and change forms, all in the hope of getting visitors to stay on the site and convert into leads or customers.

    When you track website visitors, you can see which of your efforts are moving the needle. While many people are familiar with pageviews as a metric, website visitor tracking can be much more in-depth and insightful.

    In this article, we’ll cover how website visitor tracking works, what you can track, and how this information can improve sales and marketing results. We’ll also explain global privacy concerns and how businesses can choose the right tracking software. 

    What is website visitor tracking ? 

    Website visitor tracking uses software and applications to track and analyse how visitors interact with your website. It’s a vital tool to help businesses understand whether their website design and content are having the desired effect.

    Website with user profile

    Website visitor tracking includes very broad, non-specific data, like how many times visitors have come to your site. But it can also get very specific, with personal information about the user and even recordings of their visit to your site. Site visits, which may include visiting several different pages of the same site, are often referred to as “sessions.”

    Although Google Analytics is the most widely used website visitor tracking software, it isn’t the most comprehensive or powerful. Companies that want a more in-depth understanding of their website may need to consider running a more precise tool alongside Google Analytics, like Matomo.

    As we’ll cover later, website tracking has many important business applications, but it also poses privacy and security concerns, causing some states and countries to impose strict regulations. Privacy laws and your company’s values should also impact what web analytics tool you choose.

    How website tracking works

    Website tracking starts with the collection of data as users interact with the website. Tracking technologies like cookies, JavaScript and pixels are embedded into web pages. These technologies then gather data about user behaviour, session details and user actions, such as pageviews, clicks, form submissions and more.

    More advanced tracking systems assign unique identifiers (such as cookies or visitor IDs) to individual users. This enables tracking of user journeys across multiple sessions and pages. These detailed journeys can often tell a different story and provide different insights than aggregated numbers do. 

    All this collected data is transmitted from the user’s browser to a centralised tracking system, which can be a third-party web analytics tool or a self-hosted solution. The collected data is stored in databases and processed to generate meaningful insights. This process involves organising the data, aggregating metrics, and creating reports.

    Analytics tools process the collected data to generate reports and visualisations that provide insights into user behaviour. Metrics such as pageviews, bounce rates, conversion rates and user paths are analysed. Good web analytics tools are able to present these insights in a user-friendly way. Analysts and marketing professionals then use this knowledge to make informed decisions to improve the user experience (UX).

    Advanced tracking systems allow data segmentation and filtering based on various criteria, such as user demographics, traffic sources, devices and more. This enables deeper analysis of specific user groups. For example, you might find that your conversion rate is much lower when your website is viewed on a mobile device. You can then dig deeper into that segment of data to find out why and experiment with changes that might increase mobile conversions.

    3 types of website tracking and their benefits

    There are three main categories of website tracking, and they each provide different information that can be used by sales, marketing, engineering and others. Here, we cover those three types and how businesses use them to understand customers and create better experiences.

    Website analytics 

    Website analytics is all about understanding the traffic your website receives. This type of tracking allows you to learn how the website performs based on pageviews, real-time traffic, bounce rate and conversions. 

    For example, you would use website analytics to determine how effectively your homepage drives people toward a product or pricing page. You can use pageviews and previous page statistics to learn how many people who land on your homepage read your blog posts. From there, you could use web analytics to determine the conversion rate of the call to action at the end of each article.

    Analytics, user behaviour and information

    User behaviour

    While website analytics focuses on the website’s performance, user behaviour tracking is about monitoring and quantifying user behaviour. One of the most obvious aspects of user behaviour is what they click on, but there are many other actions you can track. 

    The time a user spends on a page can help you determine whether the content on the page is engaging. Some tracking tools can also measure how far down the page a user scrolls, which reveals whether some content is even being seen. 

    Session recordings are another popular tool for analysing user behaviour. They not only show concrete actions, like clicks, but can also show how the user moves throughout the page. Where do they stop ? What do they scroll right past ? This is one example of how user behaviour data can be quantitative or qualitative.

    Visitor information

    Tracking can also include gathering or uncovering information about visitors to your site. This might include demographic information, such as language and location, or details like what device a website visitor is using and on which browser they view your website. 

    This type of data helps your web and marketing teams make better decisions about how to design and format the site. If you know, for example, that the website for your business-to-business (B2B) software is overwhelmingly viewed on desktop computers, that will affect how you structure your pages and choose images. 

    Similarly, if visitor information tells you that you have a significant audience in France, your marketing team might develop new content to appeal to those potential customers.

    Use website visitor tracking to improve marketing, sales and UX 

    Website visitor tracking has various applications for different parts of your business, from marketing to sales and much more. When you understand the impact tracking has on different teams, you can better evaluate your company’s needs and build buy-in among stakeholders.

    Marketing

    At many companies, the marketing team owns and determines what kind of content is on your website. From landing pages to blog posts to the navigation bar, you want to create an experience that drives people toward making a purchase. When marketers can track website visitors, they can get a real look at how visitors respond to and engage with their marketing efforts. Pageviews, conversion rates and time spent on pages help them better understand what your customers care about and what messaging resonates.

    But web analytics can even help marketing teams better understand how their external marketing campaigns are performing. Tracking tools like Matomo reveal your most important traffic sources. The term “traffic source” refers to the content or web property from which someone arrives at your site. 

    For instance, you might notice that an older page got a big boost in traffic this month. You can then check the traffic sources, where you find that an influential LinkedIn user posted a link to the page. This presents an opportunity to adjust the influencer or social media aspects of your marketing strategy.

    Beyond traffic sources, Matomo can provide a visual user journey (also known as User Flow), showing which pages visitors tend to view in a session and even in what order they progress. This gives you a bird’s-eye view of the customer journey.

    Sales

    Just like your marketing team, your sales team can benefit from tracking and analysing website visitor information. Data about user behaviour and visitor demographics helps sales representatives better understand the people they’re talking to. Segmented visitor tracking data can even provide clues as to how to appeal to different buyer personas.

    Sales leadership can use web analytics to gauge interest over time, tie visitors to revenue and develop more accurate sales forecasts and goals. 

    And it’s not just aggregated website tracking data that your sales team can use to better serve customers. They can also use insights about an individual visitor to tailor their approach. Matomo’s Visits Log report and Visitor Profiles allow you to see which pages a prospect has viewed. This tells your sales team which products and features the prospect is most interested in, leading to more relevant interactions and more effective sales efforts.

    User experience and web development

    The way users interact with and experience your website has a big impact on their impression of your brand and, ultimately, whether they become customers. While marketing often controls much of a website’s content, the backend and technical operation of the site usually falls to a web development or engineering team. Website analytics and tracking inform their work, too.

    Along with data about website traffic and conversion rates, web development teams often monitor bounce rates (the percentage of people who leave your website entirely after landing on a page) and page load time (the time it takes for an individual web page to load for a user). Besides the fact that slow loading times inconvenience visitors, they can also negatively affect your search engine optimization (SEO).

    Along with session recordings, user experience teams and web developers may use heatmaps to find out what parts of a page draw a visitor’s attention and where they are most likely to convert or take some other action. They can then use these insights to make a web page more intuitive and useful.

    Visitor tracking and privacy regulations 

    There are different data privacy standards in other parts of the world, which are designed to ensure that businesses collect and use consumer data ethically. The most-discussed of these privacy standards is the General Data Protection Regulation (GDPR), which was instituted by the European Union (EU) but affects businesses worldwide. However, it’s important to note that individual countries or states can have different privacy laws.

    Many privacy laws govern how websites can use cookies to track visitors. With a user’s consent, cookies can help websites identify and remember visitors. However, many web visitors will reject cookie consent banners. When this happens, analysts and marketers can’t collect information from these visitors and have to work with incomplete tracking data. Incomplete data leads to poor decision-making. What’s more, cookie consent banners can create a poor user experience and often annoy web visitors.

    With Matomo’s industry-leading measures to protect user privacy, France’s data protection agency (CNIL) has confirmed that Matomo is exempt from tracking consent in France. Matomo users have peace of mind knowing they can uphold the GDPR and collect data without needing to collect and track cookie consent. Only in Germany and the UK are cookie consent banners still required.

    Choosing user tracking software

    The benefits and value of tracking website visitors are enormous, but not all tracking software is equal. Different tools have different core functionalities. For instance, some focus on user behaviour over traditional web analytics. Others offer detailed website performance data but offer little in the way of visitor information. It’s a good idea to start by identifying your company’s most important tracking goals.

    Along with core features, look for useful tools to experiment with and optimise your website with. For example, Matomo enables A/B testing while many other tools do not.

    Along with users of your website, you also need to think about the employees who will be using the tracking software. The interface can have a big impact on the value you get from a tool. Matomo’s session recording functionality, for example, not only provides you with video but with a colour-coded timeline identifying important user actions.

    Privacy standards and compliance should also be a part of the conversation. Different tools use different tracking methods, impacting accuracy and security and can even cause legal trouble. You should consider which data privacy laws you are subject to, as well as the privacy expectations of your users.

    Cloud-based tool and on-premises software

    Some industries have especially high data security standards. Government and healthcare organisations, for example, may require visitor tracking software that is hosted on their premises. While there are many purely cloud-based software-as-a-service (SaaS) tracking tools, Matomo is available both On-Premise (also known as self-hosted) and in the Cloud.

    Frequently asked questions

    Here are answers to some of people’s most common questions about tracking website visitors.

    Can you track who visited your website ?

    In most cases, tracking your website’s traffic is possible. Still, the extent of the tracking depends on the visitor-tracking technology you use and the privacy settings and precautions the visitor uses. For example, some technologies can pinpoint users by IP address. In other cases, you may only have access to anonymized data.

    Is it legal to track someone’s IP address ?

    It is legal for websites and businesses to track someone’s IP address in the sense that they can identify that someone from the same IP address is visiting a page repeatedly. Under the General Data Protection Regulation (GDPR), IP addresses are considered personally identifiable information (PII). The GDPR mandates that websites only log and store a user’s IP address with the user’s consent.

    How do you find where visitors are clicking the most ?

    Heatmap tools are among the most common tools for learning where visitors click the most on your website. Heatmaps use colour-coding to show what parts of a web page users either click on or hover over the most.

    Unique tracking URLs are another way to determine what part of your website gets the most clicks. For example, if you have three links on a page that all go to the same destination, you can use tracking links to determine how many clicks each link generates.

    Matomo also offers a Tag Manager within the platform that lets you manage and unify all your tracking and marketing tags to find out where visitors are clicking.

    What is the best tool for website visitor tracking ?

    Like most tools, the best website visitor tracking tool depends on your needs. Each tool offers different functionalities, user interfaces and different levels of accuracy and privacy. Matomo is a good choice for companies that value privacy, compliance and accuracy.

    Tracking for powerful insights and better performance

    Tracking website visitors is now a well-ingrained part of business operations. From sales reps seeking to understand their leads to marketers honing their ad spend, tracking helps teams do their jobs better.

    Take the time to consider what you want to learn from website tracking and let those priorities guide your choice of visitor tracking software. Whatever your industry or needs, user privacy and compliance must be a priority.

    Find out how much detail and insight Matomo can give you with our free 21-day trial — no credit card required.