Recherche avancée

Médias (1)

Mot : - Tags -/portrait

Autres articles (63)

  • MediaSPIP v0.2

    21 juin 2013, par

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

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, 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 (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (7366)

  • When I build ndk with .a files it comes like this `error adding symbols : File in wrong format`

    2 avril 2020, par Pradeep Simba

    When I build ndk with .a files it comes like this error adding symbols: File in wrong format.

    



    WORKING_DIR := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_PATH := $(WORKING_DIR)/../third_party/lame/libmp3lame
LOCAL_MODULE    := lame
LOCAL_C_INCLUDES := $(WORKING_DIR)/../third_party/lame/libmp3lame \
                $(WORKING_DIR)/../third_party/lame/include
LOCAL_CFLAGS := -DSTDC_HEADERS -std=c99
LOCAL_ARM_MODE := arm
APP_OPTIM := release

LOCAL_SRC_FILES := VbrTag.c \
               bitstream.c \
               encoder.c \
               fft.c \
               gain_analysis.c \
               id3tag.c \
               lame.c \
               mpglib_interface.c \
               newmdct.c \
               presets.c \
               psymodel.c \
               quantize.c \
               quantize_pvt.c \
               reservoir.c \
               set_get.c \
               tables.c \
               takehiro.c \
               util.c \
               vbrquantize.c \
               version.c


#include $(BUILD_STATIC_LIBRARY)

include $(BUILD_STATIC_LIBRARY)

#include $(CLEAR_VARS)
#LOCAL_MODULE  := mp3lame_a
#LOCAL_STATIC_LIBRARIES := lame

#include $(BUILD_EXECUTABLE) 

include $(CLEAR_VARS)
LOCAL_PATH := $(WORKING_DIR)
LOCAL_MODULE    := ffmpeg
LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -std=c99 -D__STDC_CONSTANT_MACROS -DSTDC_HEADERS -Wno-deprecated-declarations
LOCAL_SRC_FILES := ffmpeg-jni.c
LOCAL_C_INCLUDES := $(WORKING_DIR)/libavcodec $(WORKING_DIR)/libavcodec/arm      $(WORKING_DIR)/libavformat $(WORKING_DIR)/libavutil $(WORKING_DIR)/libavutil/arm

LOCAL_STATIC_LIBRARIES := lame

LOCAL_LDLIBS := -llog -lm -lz $(WORKING_DIR)/../third_party/lib/libavformat.a $(WORKING_DIR)/../third_party/lib/libavcodec.a $(WORKING_DIR)/../third_party/lib/libavfilter.a $(WORKING_DIR)/../third_party/lib/libavresample.a $(WORKING_DIR)/../third_party/lib/libswscale.a $(WORKING_DIR)/../third_party/lib/libavutil.a $(WORKING_DIR)/../third_party/lib/libx264.a $(WORKING_DIR)/../third_party/lib/libpostproc.a $(WORKING_DIR)/../third_party/lib/libswresample.a $(WORKING_DIR)/../third_party/lib/libfdk-aac.a

APP_OPTIM := release

include $(BUILD_SHARED_LIBRARY)


    



    enter image description here
enter image description here
enter image description here

    



    When I build ndk the error occurs

    



    enter image description here

    



    Microsoft Windows [Version 10.0.18363.418]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\prade>d:

D:\>cd D:\Github\n

D:\Github\n>ndk-build
Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-16.
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
[arm64-v8a] Compile        : ffmpeg <= ffmpeg-jni.c
jni/ffmpeg-jni.c:248:16: warning: initializing 'const jbyte *' (aka 'const signed char *') with an expression of type
  'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
const jbyte *url = (*env)->GetStringUTFChars(env, rtmp_url, NULL);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/ffmpeg-jni.c:252:37: warning: passing 'const jbyte *' (aka 'const signed char *') to parameter of type
  'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
if (avio_open(&fmt_context->pb, url, URL_WRONLY) < 0) {
                                ^~~
jni/libavformat/avio.h:391:44: note: passing argument to parameter 'url' here
 int avio_open(AVIOContext **s, const char *url, int flags);
                                       ^
jni/ffmpeg-jni.c:257:48: warning: passing 'const jbyte *' (aka 'const signed char *') to parameter of type
  'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
(*env)->ReleaseStringUTFChars(env, rtmp_url, url);
                                           ^~~
jni/ffmpeg-jni.c:297:18: warning: initializing 'unsigned char *' with an expression of type 'jbyte *'
  (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
 unsigned char *yuv_data = (*env)->GetByteArrayElements(env, yuv_image, 0);
             ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 jni/ffmpeg-jni.c:330:52: warning: passing 'unsigned char *' to parameter of type 'jbyte *' (aka 'signed char *')
  converts between pointers to integer types with different sign [-Wpointer-sign]
 (*env)->ReleaseByteArrayElements(env, yuv_image, yuv_data, 0);
                                               ^~~~~~~~
5 warnings generated.
[arm64-v8a] Compile        : lame <= VbrTag.c
jni/../third_party/lame/libmp3lame/VbrTag.c:263:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[0], 8u, 0xffu);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:265:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 3u, 7);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:266:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 1u, (gfp->out_samplerate < 16000) ? 0 : 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:267:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 1u, gfp->version);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:268:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 2u, 4 - 3);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:269:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 1u, (!gfp->error_protection) ? 1 : 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:271:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 4u, gfc->bitrate_index);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:272:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 2u, gfc->samplerate_index);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:273:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 1u, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:274:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 1u, gfp->extension);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:276:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfp->mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:277:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfc->mode_ext);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:278:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 1u, gfp->copyright);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:279:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 1u, gfp->original);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:280:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfp->emphasis);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:421:23: warning: comparison of array 'pTagData->toc' not equal to a null
  pointer is always true [-Wtautological-pointer-compare]
    if (pTagData->toc != NULL) {
        ~~~~~~~~~~^~~    ~~~~
16 warnings generated.
[arm64-v8a] Compile        : lame <= bitstream.c
[arm64-v8a] Compile        : lame <= encoder.c
[arm64-v8a] Compile        : lame <= fft.c
[arm64-v8a] Compile        : lame <= gain_analysis.c
[arm64-v8a] Compile        : lame <= id3tag.c
[arm64-v8a] Compile        : lame <= lame.c
jni/../third_party/lame/libmp3lame/lame.c:603:13: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
    if (EQ(gfp->compression_ratio, 0))
        ^
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:603:13: note: use function 'abs' instead
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:603:13: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
    if (EQ(gfp->compression_ratio, 0))
        ^
jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
: (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
jni/../third_party/lame/libmp3lame/lame.c:603:13: note: use function 'abs' instead
jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
: (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
jni/../third_party/lame/libmp3lame/lame.c:1559:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
if (NEQ(gfp->scale, 0) && NEQ(gfp->scale, 1.0)) {
    ^
jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
#define NEQ(a,b) (!EQ(a,b))
               ^
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:1559:9: note: use function 'abs' instead
jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
#define NEQ(a,b) (!EQ(a,b))
               ^
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:1559:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
if (NEQ(gfp->scale, 0) && NEQ(gfp->scale, 1.0)) {
    ^
jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
#define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1559:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
  jni/../third_party/lame/libmp3lame/lame.c:1568:9: warning: using floating point absolute value function 'fabs' when
   argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_left, 0) && NEQ(gfp->scale_left, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1568:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1568:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_left, 0) && NEQ(gfp->scale_left, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1568:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_right, 0) && NEQ(gfp->scale_right, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_right, 0) && NEQ(gfp->scale_right, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/ ../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 8 warnings generated.
 [arm64-v8a] Compile        : lame <= mpglib_interface.c
 [arm64-v8a] Compile        : lame <= newmdct.c
 [arm64-v8a] Compile        : lame <= presets.c
 jni/../third_party/lame/libmp3lame/presets.c:145:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp, set->quant_comp, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:145:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:146:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp_short, set->quant_comp_s, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:146:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:259:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:259:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:260:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:260:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 4 warnings generated.
 [arm64-v8a] Compile        : lame <= psymodel.c
 [arm64-v8a] Compile        : lame <= quantize.c
 [arm64-v8a] Compile        : lame <= quantize_pvt.c
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: warning: using floating point absolute value function 'fabs'
  when argument is of integer type [-Wabsolute-value]
    while (k-- && EQ(xr[k], 0)) {
                  ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: warning: using floating point absolute value function 'fabs'
  when argument is of integer type [-Wabsolute-value]
    while (k-- && EQ(xr[k], 0)) {
                  ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 :  (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 2 warnings generated.
 [arm64-v8a] Compile        : lame <= reservoir.c
 [arm64-v8a] Compile        : lame <= set_get.c
 [arm64-v8a] Compile        : lame <= tables.c
 [arm64-v8a] Compile        : lame <= takehiro.c
 [arm64-v8a] Compile        : lame <= util.c
 [arm64-v8a] Compile        : lame <= vbrquantize.c
 [arm64-v8a] Compile        : lame <= version.c
 [ arm64-v8a] StaticLibrary  : liblame.a
 [ arm64-v8a] SharedLibrary  : libffmpeg.so
 jni/../third_party/lib/libavformat.a: error adding symbols: File in wrong format
 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
 make: *** [D:/install/sdk/ndk/21.0.6113669/build//../build/core/build-binary.mk:725: obj/local/arm64-v8a/libffmpeg.so] Error 1

  D:\Github\n>


    



    How can I solve this ?

    


  • Generating video from images and audio by FFmpeg

    24 mars 2020, par Cody

    I am new to FFmpeg and video/audio encoding. I try to use Fluent ffmpeg to generate a MP4 video from images and audio.

    There are 2 inputs only :

    If the audio duration is longer video length, just discard the excessive part of audio at the end.
    And all the images have to be shown in same duration.(i.e. The video should be in n/d FPS for n images and video with d second)

    Since the image input are not in number sequence, I use concat demuxer as input :

           let VIDEO_DURATION = 8;
           let ffmpeg = await FfmpegUtil.createCommand();
           let imageFiles: string[] = ["foo.jpg", "bar.jpg", ...]; //assume there are 67 image files
           let demuxerFile = await FfmpegUtil.createConcatDemuxerFile(imageFiles);
           let audioFile: string = "path/to/audio.wav";

           ffmpeg.input(demuxerFile)
               .inputOption(
                   "-f", "concat",
                   "-safe", "0",
               )
               .input(audioFile)
               .outputOption(
                   "-r", `${imageFiles.length}/${VIDEO_DURATION}`,
               )
               .duration(VIDEO_DURATION)
               .save("path/to/output.mp4")
           ;

    it will spawn a ffmpeg command :

    ffmpeg
       -f concat
       -safe 0
       -i path/to/demuxerFile.txt
       -i path/to/audio.wav
       -y
       -r 67/8
       -t 8
       path/to/output.mp4

    However the output file cannot be played.

    I also tried "-framerate", ${imageFiles.length}/${VIDEO_DURATION} in .outputOption(), it still output a file cannot be played and I found the frame rate always be 25 in its file property.

    Update 1 (added spawned command & ffmpeg console log) :

    spawned ffmpeg command & console log ("-r", `${imageFiles.length}/${VIDEO_DURATION}` as outputOption) :

    ffmpeg -f concat -safe 0 -i path/to/demuxerFile.txt -i path/to/audio.wav -y -r 67/8 -t 8 path/to/output_r.mp4

    ffmpeg version git-2020-01-26-5e62100 Copyright (c) 2000-2020 the FFmpeg developers
     built with gcc 9.2.1 (GCC) 20200122
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
     libavutil      56. 38.100 / 56. 38.100
     libavcodec     58. 67.100 / 58. 67.100
     libavformat    58. 36.100 / 58. 36.100
     libavdevice    58.  9.103 / 58.  9.103
     libavfilter     7. 71.100 /  7. 71.100
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100
    Input #0, concat, from 'path/to/demuxerFile.txt':
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 4677x4677 [SAR 256:256 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, wav, from 'path/to/audio.wav':
     Metadata:
       artist          : TextAloud: IVONA Kimberly22
       date            : 2018
       genre           : Speech
       title           : 38750336.mp3
       album           : Created: 7/26/2018 4:56:13 PM
       encoder         : Lavf58.16.100
       encoded_by      : Lame MP3
     Duration: 00:00:15.57, bitrate: 705 kb/s
       Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, stereo, s16, 705 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
    Press [q] to stop, [?] for help
    [libx264 @ 000001e395041400] using SAR=1/1
    [libx264 @ 000001e395041400] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 000001e395041400] profile High 4:4:4 Predictive, level 6.0, 4:4:4, 8-bit
    [libx264 @ 000001e395041400] 264 - core 159 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - 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=8 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
    Output #0, mp4, to 'path/to/output_r.mp4':
     Metadata:
       encoder         : Lavf58.36.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj444p(pc, progressive), 4677x4677 [SAR 256:256 DAR 1:1], q=-1--1, 8.38 fps, 17152 tbn, 8.38 tbc
       Metadata:
         encoder         : Lavc58.67.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 128 kb/s
       Metadata:
         encoder         : Lavc58.67.100 aac
    frame=    3 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=    5 fps=4.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=4 speed=   0x    
    frame=    6 fps=3.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=7 speed=   0x    
    frame=    8 fps=3.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=10 speed=   0x    
    frame=   10 fps=3.5 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=14 speed=   0x    
    frame=   11 fps=3.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=16 speed=   0x    
    frame=   13 fps=3.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=20 speed=   0x    
    frame=   14 fps=3.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=22 speed=   0x    
    frame=   16 fps=3.1 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=26 speed=   0x    
    frame=   17 fps=2.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=28 speed=   0x    
    frame=   18 fps=2.8 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=31 speed=   0x    
    frame=   20 fps=2.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=34 speed=   0x    
    frame=   21 fps=2.8 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=36 speed=   0x    
    frame=   23 fps=2.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=40 speed=   0x    
    frame=   24 fps=2.8 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=0 drop=42 speed=   0x    
    frame=   24 fps=0.7 q=-1.0 Lsize=     752kB time=00:00:08.03 bitrate= 766.4kbits/s dup=0 drop=43 speed=0.22x    
    video:624kB audio:125kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.359236%
    [libx264 @ 000001e395041400] frame I:1     Avg QP:12.79  size:257554
    [libx264 @ 000001e395041400] frame P:15    Avg QP:13.10  size: 20487
    [libx264 @ 000001e395041400] frame B:8     Avg QP:13.10  size:  9231
    [libx264 @ 000001e395041400] consecutive B-frames: 45.8% 25.0% 12.5% 16.7%
    [libx264 @ 000001e395041400] mb I  I16..4: 18.4% 79.2%  2.4%
    [libx264 @ 000001e395041400] mb P  I16..4:  1.0%  3.3%  0.4%  P16..4:  1.0%  0.2%  0.2%  0.0%  0.0%    skip:93.9%
    [libx264 @ 000001e395041400] mb B  I16..4:  0.1%  0.2%  0.1%  B16..8:  1.8%  0.1%  0.0%  direct: 2.9%  skip:94.7%  L0:58.1% L1:40.2% BI: 1.7%
    [libx264 @ 000001e395041400] 8x8 transform intra:75.0% inter:82.7%
    [libx264 @ 000001e395041400] coded y,u,v intra: 6.1% 3.5% 4.4% inter: 0.2% 1.2% 0.5%
    [libx264 @ 000001e395041400] i16 v,h,dc,p: 80% 16%  3%  2%
    [libx264 @ 000001e395041400] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 46%  8% 44%  0%  0%  0%  0%  0%  0%
    [libx264 @ 000001e395041400] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 27% 25%  3%  3%  3%  4%  3%  3%
    [libx264 @ 000001e395041400] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 000001e395041400] ref P L0: 75.6%  3.3% 14.8%  6.3%
    [libx264 @ 000001e395041400] ref B L0: 88.6% 10.7%  0.7%
    [libx264 @ 000001e395041400] ref B L1: 98.7%  1.3%
    [libx264 @ 000001e395041400] kb/s:1783.06
    [aac @ 000001e3951e7f80] Qavg: 55135.730

    spawned ffmpeg command & console log ("-framerate", `${imageFiles.length}/${VIDEO_DURATION}` as outputOption) :

    ffmpeg -f concat -safe 0 -i path/to/demuxerFile.txt -i path/to/audio.wav -y -framerate 67/8 -t 8 path/to/output_framerate.mp4

    ffmpeg version git-2020-01-26-5e62100 Copyright (c) 2000-2020 the FFmpeg developers
     built with gcc 9.2.1 (GCC) 20200122
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
     libavutil      56. 38.100 / 56. 38.100
     libavcodec     58. 67.100 / 58. 67.100
     libavformat    58. 36.100 / 58. 36.100
     libavdevice    58.  9.103 / 58.  9.103
     libavfilter     7. 71.100 /  7. 71.100
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100
    Input #0, concat, from 'path/to/demuxerFile.txt':
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 4677x4677 [SAR 256:256 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, wav, from 'path/to/audio.wav':
     Metadata:
       artist          : TextAloud: IVONA Kimberly22
       date            : 2018
       genre           : Speech
       title           : 38750336.mp3
       album           : Created: 7/26/2018 4:56:13 PM
       encoder         : Lavf58.16.100
       encoded_by      : Lame MP3
     Duration: 00:00:15.57, bitrate: 705 kb/s
       Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, stereo, s16, 705 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
    Press [q] to stop, [?] for help
    [libx264 @ 000002460bda4740] using SAR=1/1
    [libx264 @ 000002460bda4740] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 000002460bda4740] profile High 4:4:4 Predictive, level 6.0, 4:4:4, 8-bit
    [libx264 @ 000002460bda4740] 264 - core 159 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - 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
    Output #0, mp4, to 'path/to/output_framerate.mp4':
     Metadata:
       encoder         : Lavf58.36.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj444p(pc, progressive), 4677x4677 [SAR 256:256 DAR 1:1], q=-1--1, 25 fps, 12800 tbn, 25 tbc
       Metadata:
         encoder         : Lavc58.67.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 128 kb/s
       Metadata:
         encoder         : Lavc58.67.100 aac
    frame=    3 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=    6 fps=5.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=    9 fps=5.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   12 fps=5.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   14 fps=4.6 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   16 fps=4.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   18 fps=3.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   20 fps=3.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   22 fps=3.8 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   23 fps=3.6 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   25 fps=3.6 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   27 fps=3.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   28 fps=3.1 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   30 fps=3.1 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   33 fps=3.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   36 fps=3.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   38 fps=3.1 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   39 fps=3.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   40 fps=2.6 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   41 fps=2.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   42 fps=2.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   43 fps=1.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   44 fps=1.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   45 fps=1.8 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   46 fps=1.8 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   47 fps=1.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   49 fps=1.5 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   50 fps=1.5 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   51 fps=1.5 q=28.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   51 fps=1.3 q=28.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   52 fps=1.3 q=28.0 size=       0kB time=00:00:00.04 bitrate=   8.3kbits/s speed=0.00114x    
    frame=   53 fps=1.3 q=28.0 size=       0kB time=00:00:00.04 bitrate=   8.3kbits/s speed=0.00111x    
    frame=   54 fps=1.2 q=28.0 size=       0kB time=00:00:00.04 bitrate=   8.3kbits/s speed=0.00101x    
    frame=   55 fps=1.2 q=28.0 size=       0kB time=00:00:00.13 bitrate=   2.8kbits/s speed=0.00297x    
    frame=   56 fps=1.1 q=28.0 size=       0kB time=00:00:00.18 bitrate=   2.1kbits/s speed=0.00377x    
    frame=   57 fps=1.1 q=28.0 size=     256kB time=00:00:00.23 bitrate=9033.3kbits/s speed=0.00461x    
    frame=   58 fps=1.1 q=28.0 size=     256kB time=00:00:00.27 bitrate=7527.8kbits/s speed=0.00514x    
    frame=   59 fps=1.0 q=28.0 size=     256kB time=00:00:00.32 bitrate=6452.4kbits/s speed=0.00571x    
    frame=   60 fps=1.0 q=28.0 size=     256kB time=00:00:00.37 bitrate=5645.8kbits/s speed=0.00643x    
    frame=   62 fps=1.0 q=28.0 size=     256kB time=00:00:00.37 bitrate=5645.8kbits/s speed=0.00605x    
    frame=   62 fps=1.0 q=28.0 size=     256kB time=00:00:00.41 bitrate=5018.5kbits/s speed=0.00668x    
    frame=   63 fps=1.0 q=28.0 size=     256kB time=00:00:00.46 bitrate=4516.7kbits/s speed=0.00727x    
    frame=   64 fps=1.0 q=28.0 size=     256kB time=00:00:00.51 bitrate=4106.1kbits/s speed=0.00778x    
    frame=   65 fps=1.0 q=28.0 size=     256kB time=00:00:00.55 bitrate=3763.9kbits/s speed=0.00827x    
    frame=   66 fps=1.0 q=28.0 size=     256kB time=00:00:00.60 bitrate=3474.4kbits/s speed=0.00884x    
    frame=   67 fps=1.0 q=28.0 size=     256kB time=00:00:00.65 bitrate=3226.2kbits/s speed=0.00943x    
    frame=   67 fps=0.6 q=-1.0 Lsize=     872kB time=00:00:08.03 bitrate= 888.9kbits/s speed=0.0752x    
    video:744kB audio:125kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.391708%
    [libx264 @ 000002460bda4740] frame I:1     Avg QP:15.80  size:216204
    [libx264 @ 000002460bda4740] frame P:29    Avg QP:15.19  size: 10747
    [libx264 @ 000002460bda4740] frame B:37    Avg QP:17.07  size:  6300
    [libx264 @ 000002460bda4740] consecutive B-frames: 17.9% 14.9% 31.3% 35.8%
    [libx264 @ 000002460bda4740] mb I  I16..4: 11.4% 86.0%  2.6%
    [libx264 @ 000002460bda4740] mb P  I16..4:  0.5%  1.9%  0.2%  P16..4:  0.7%  0.2%  0.1%  0.0%  0.0%    skip:96.5%
    [libx264 @ 000002460bda4740] mb B  I16..4:  0.1%  0.2%  0.0%  B16..8:  1.3%  0.2%  0.0%  direct: 0.7%  skip:97.5%  L0:57.4% L1:40.7% BI: 1.9%
    [libx264 @ 000002460bda4740] 8x8 transform intra:79.7% inter:31.4%
    [libx264 @ 000002460bda4740] coded y,u,v intra: 5.7% 2.9% 3.7% inter: 0.1% 0.5% 0.2%
    [libx264 @ 000002460bda4740] i16 v,h,dc,p: 70% 23%  4%  2%
    [libx264 @ 000002460bda4740] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 45%  8% 45%  0%  0%  0%  0%  0%  0%
    [libx264 @ 000002460bda4740] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 26% 25%  3%  3%  4%  4%  3%  2%
    [libx264 @ 000002460bda4740] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 000002460bda4740] ref P L0: 72.6%  3.0% 16.6%  7.7%
    [libx264 @ 000002460bda4740] ref B L0: 75.7% 20.6%  3.7%
    [libx264 @ 000002460bda4740] ref B L1: 97.7%  2.3%
    [libx264 @ 000002460bda4740] kb/s:2271.59
    [aac @ 000002460bda8580] Qavg: 55135.730
  • Measuring success for your SEO content

    20 mars 2020, par Jake Thornton — Uncategorized

    With over a billion searches every day in search engines, it’s hard to underestimate the importance of having your business present on page one (ideally in positions 1 – 3) ranking for the keywords that impact your sales and conversions.

    "In 2019, Google received nearly 2.3 trillion searches and on page one alone, the first five organic results accounted for 67.60% of all the clicks."

    So how is your business performing when it comes to ranking in the crucial top three spots of search for your most important keywords ?

    Accurately measuring the success of your content

    Once you’ve done your keyword research, created compelling content, optimised it to be search-friendly, and hit ‘publish’, you then need to accurately measure the success of your efforts.

    4 tips for measuring the success of your SEO content

    1. Create a custom segment for "Visitors from Search Engines only"

    By creating this custom segment, you’ll be able to analyse the behavioural patterns of the visitors who found your website through a search engine. 

    This way you can use many of Matomo’s powerful features (Visitors, Behaviour, Acquisition, Ecommerce, Goals etc.) focused entirely on search engine visitors only.

    Once you’ve created this segment, you can begin to see key metrics like which entry pages are responsible for referring visitors to your website. For example : Visit Behaviour – Entry Pages, this is a great way to analyse your most effective SEO pages.You may be surprised at what pages currently bring in the most traffic.

    As well as discovering which content resonates with your search audience, you will also be able to create more content focused on your targeted audience. Do this by learning which locations your search visitors are from, which device they use, what time of the day they visited your website and much more.

    >> Learn more about creating custom segments

    2. Website visits, time on site, pages per session, and bounce rate.

    “The top four ranking factors are website visits, time on site, pages per session, and bounce rate.”

    These four metrics set the benchmark for your SEO success.

    First, you need to get as many of the ‘right’ users to see your content. If you feel you’ve exhausted channels such as social media, email and possibly paid posts ; think about who your ideal audience is. Where are they likely to hang out online ? Are there community groups or forum sites that are interested in what you’re writing about ? 

    Whatever the case, putting yourself out there and getting more traffic to your website will help show search engines that people are interested in your website. As a result, they’ll likely rank you higher for that.

    When we say getting more of the ‘right’ users, we mean users who are generally interested in the topic/subject you’re writing about and interested in the work you do. 

    This is important for the next three metrics – increasing users time on your website, increasing the amount of pages your users explore on your website, and reducing the overall bounce rate for users who leave your website in a matter of seconds.

    To evaluate these metrics, go to Behaviour Pages in your Matomo and see how these metrics vary on previous posts or pages you’ve created. Which pages are already showing you the best results ? Why do they get the results ? Can you focus on creating more content like this ?

    Understanding what content is resonating with your users through these metrics is easy and is the starting point for measuring the success of your SEO content strategy.

    >> Learn more about the Behaviour feature

    3. Row Evolution

    The Row Evolution feature embedded within the Search Engine Keywords Performance plugin lets you see how your ranking positions have changed over time for your important keywords. It also lets you see how the incoming traffic, related to your keywords, has changed over time.

    This is valuable when measuring the changes you’ve made to your landing pages to see if it has a positive or negative effect on your ranking efforts. 

    This also lets you see how search engine algorithm changes affect your search rankings over time, and to see if the effects of these algorithm updates are temporary or long lasting.

    Row evolution allows you to report on keyword performance with ease. If you only check your insights once a week or once a fortnight, you’ll see how ranking positions for your important keywords have changed daily (or even weekly, monthly or yearly however you prefer.)

    >> Learn more about Row Evolution

    4. What results are you getting from the lesser known search engines ?

    "In 2019 (to date), Google accounted for just over 75% of all global desktop search traffic, followed by Bing at 9.97%, Baidu at 9.34%, and Yahoo at 2.77%."

    For most of us, we want to be ranking in the top three spots in Google Search because that’s where the majority of search users are. However, don’t shy away from opportunities you could be missing with lesser known search engines.

    If you sell a product aimed at 55-65 year olds who use a PC computer, chances are they are using Bing. If you have customers in China the majority will be using Baidu, or in our case at Matomo, many of our loyal users use a privacy-friendly search engine like DuckDuckGo or Qwant.

    Some of your ideal customers might be finding you through these alternative search engines, so be sure to measure the impact that these referrals may have on your conversions.

    Strategically including important keywords that impact your business

    While search is an important acquisition channel for most businesses, it’s also one of the most competitive.

    We recommend analysing your keyword and content performance regularly and alter content that isn’t performing as well as you’d like. You need to continually learn from the content that is successful, and focus on creating more content like this. 

    The final thing to remember with search keyword performance is to be patient. If you have had little success in the past with attracting customers through search, it can take time to build this reputation with search engines.