
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (56)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (10040)
-
build : Fine-grained link-time dependency settings
22 janvier 2017, par Diego Biurrunbuild : Fine-grained link-time dependency settings
Previously, all link-time dependencies were added for all libraries,
resulting in bogus link-time dependencies since not all dependencies
are shared across libraries. Also, in some cases like libavutil, not
all dependencies were taken into account, resulting in some cases of
underlinking.To address all this mess a machinery is added for tracking which
dependency belongs to which library component and then leveraged
to determine correct dependencies for all individual libraries. -
Cant link against ffmpeg with openssl using cmake
24 mars 2017, par David BarishevI have build ffmpeg libraries statically for x86 android using a custom configuration.Now i wanted to add them in my android project.
Im using ffmpeg 3.2.git, android studio 2.3.
I created a folder named distribution which had my binaries, and the minimum headers i needed for it to not tell me about missing header (Except for the avutil- i just included them all), located the root of my project.
I edited my cmake to include the libraries :add_library(
native-lib
SHARED
src/main/cpp/native-lib.cpp )
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../distribution)
add_library(lib_avcodec STATIC IMPORTED)
set_target_properties(lib_avcodec PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavcodec/lib/${ANDROID_ABI}/libavcodec.a)
add_library(lib_avfilter STATIC IMPORTED)
set_target_properties(lib_avfilter PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavfilter/lib/${ANDROID_ABI}/libavfilter.a)
add_library(lib_avformat STATIC IMPORTED)
set_target_properties(lib_avformat PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavformat/lib/${ANDROID_ABI}/libavformat.a)
add_library(lib_avutil STATIC IMPORTED)
set_target_properties(lib_avutil PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavutil/lib/${ANDROID_ABI}/libavutil.a)
add_library(lib_swresample STATIC IMPORTED)
set_target_properties(lib_swresample PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libswresample/lib/${ANDROID_ABI}/libswresample.a)
include_directories(
${distribution_DIR}
)
find_library( # Sets the name of the path variable.
z-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
z )
target_link_libraries(
native-lib
${z-lib}
lib_crypto
lib_ssl
lib_avfilter
lib_avformat
lib_avcodec
lib_swresample
lib_avutil
)I also restricted the build to only x86, in my app build.gradle :
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
abiFilters 'x86'
}The project gradle sync worked successfully.
I wrote the following code in my cpp file :#include
extern "C"{
#include "libavformat/avformat.h"
}
JNIEXPORT void JNICALL
Java_com_example_david_testffmpegcpp_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
av_register_all ();
avformat_network_init ();
}Just to check if the library works, but i cant seem to link against the libraries correctly. It complains about undefined symbols.
What did i do wrong ?EDIT :
I changed the order of the linked libraries, and was able to remove all error for ffmpeg’s library functions not found, and i added zlib,that removed some more.
The only error left are those how are related to openssl, its logical since i compiled my ffmpeg libraries with openssl.
I tried linking my openssl static libraries that i used for compiling ffmpeg like this :
set(ssl_dir ${CMAKE_SOURCE_DIR}/../../../FFmpegBuild/Openssl/output_19/android)
add_library(lib_ssl STATIC IMPORTED)
set_target_properties(lib_ssl PROPERTIES IMPORTED_LOCATION
${ssl_dir}/openssl-${ANDROID_ABI}/lib/libssl.a)
add_library(lib_crypto STATIC IMPORTED)
set_target_properties(lib_crypto PROPERTIES IMPORTED_LOCATION
${ssl_dir}/openssl-${ANDROID_ABI}/lib/libcrypto.a)
include_directories( ${ssl_dir}/openssl-${ANDROID_ABI}/include
${distribution_DIR}
)And linked against them :
target_link_libraries( # Specifies the target library.
native-lib
${z-lib}
lib_ssl
lib_crypto
lib_avfilter
lib_avformat
lib_avcodec
lib_swresample
lib_avutil
)But i’m still getting the error that i state below.
My question is why ? Also if i already built ffmpeg in static mode, how come i need to relink openssl again ?Error :
Error while executing process D:\AndroidSDK\cmake\3.6.3155560\bin\cmake.exe with arguments {--build D:\AndroidApps\TestFFmpegCpp\app\.externalNativeBuild\cmake\debug\x86 --target native-lib}
[1/1] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so
FAILED: cmd.exe /C "cd . && D:\AndroidSDK\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=i686-none-linux-android --gcc-toolchain=D:/AndroidSDK/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64 --sysroot=D:/AndroidSDK/ndk-bundle/platforms/android-19/arch-x86 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -O0 -fno-limit-debug-info -O0 -fno-limit-debug-info -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -lz ../../../../../../../FFmpegBuild/Openssl/output_19/android/openssl-x86/lib/libcrypto.a ../../../../../../../FFmpegBuild/Openssl/output_19/android/openssl-x86/lib/libssl.a ../../../../../distribution/libavfilter/lib/x86/libavfilter.a ../../../../../distribution/libavformat/lib/x86/libavformat.a ../../../../../distribution/libavcodec/lib/x86/libavcodec.a ../../../../../distribution/libswresample/lib/x86/libswresample.a ../../../../../distribution/libavutil/lib/x86/libavutil.a -lm "D:/AndroidSDK/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && cd ."
src/libavformat/tls_openssl.c:125: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:102: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:116: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:116: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:309: error: undefined reference to 'SSL_read'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:320: error: undefined reference to 'SSL_write'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:154: error: undefined reference to 'SSL_library_init'
src/libavformat/tls_openssl.c:155: error: undefined reference to 'SSL_load_error_strings'
src/libavformat/tls_openssl.c:157: error: undefined reference to 'CRYPTO_get_locking_callback'
src/libavformat/tls_openssl.c:159: error: undefined reference to 'CRYPTO_num_locks'
src/libavformat/tls_openssl.c:165: error: undefined reference to 'CRYPTO_num_locks'
src/libavformat/tls_openssl.c:167: error: undefined reference to 'CRYPTO_set_locking_callback'
src/libavformat/tls_openssl.c:186: error: undefined reference to 'CRYPTO_get_locking_callback'
src/libavformat/tls_openssl.c:188: error: undefined reference to 'CRYPTO_set_locking_callback'
src/libavformat/tls_openssl.c:189: error: undefined reference to 'CRYPTO_num_locks'
src/libavformat/tls_openssl.c:208: error: undefined reference to 'SSL_shutdown'
src/libavformat/tls_openssl.c:209: error: undefined reference to 'SSL_free'
src/libavformat/tls_openssl.c:212: error: undefined reference to 'SSL_CTX_free'
src/libavformat/tls_openssl.c:240: error: undefined reference to 'SSLv23_client_method'
src/libavformat/tls_openssl.c:240: error: undefined reference to 'SSL_CTX_new'
src/libavformat/tls_openssl.c:246: error: undefined reference to 'SSL_CTX_ctrl'
src/libavformat/tls_openssl.c:248: error: undefined reference to 'SSL_CTX_load_verify_locations'
src/libavformat/tls_openssl.c:251: error: undefined reference to 'SSL_CTX_use_certificate_chain_file'
src/libavformat/tls_openssl.c:257: error: undefined reference to 'SSL_CTX_use_PrivateKey_file'
src/libavformat/tls_openssl.c:267: error: undefined reference to 'SSL_new'
src/libavformat/tls_openssl.c:284: error: undefined reference to 'BIO_new'
src/libavformat/tls_openssl.c:287: error: undefined reference to 'SSL_set_bio'
src/libavformat/tls_openssl.c:290: error: undefined reference to 'SSL_accept'
src/libavformat/tls_openssl.c:240: error: undefined reference to 'SSLv23_server_method'
src/libavformat/tls_openssl.c:258: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:258: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:208: error: undefined reference to 'SSL_shutdown'
src/libavformat/tls_openssl.c:209: error: undefined reference to 'SSL_free'
src/libavformat/tls_openssl.c:212: error: undefined reference to 'SSL_CTX_free'
src/libavformat/tls_openssl.c:290: error: undefined reference to 'SSL_connect'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:266: error: undefined reference to 'SSL_CTX_set_verify'
src/libavformat/tls_openssl.c:289: error: undefined reference to 'SSL_ctrl'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed. -
Cant link against ffmpeg static build
24 mars 2017, par David BarishevI have build ffmpeg libraries statically for x86 android using a custom configuration.Now i wanted to add them in my android project.
Im using ffmpeg 3.2.git, android studio 2.3.
I created a folder named distribution which had my binaries, and the minimum headers i needed for it to not tell me about missing header (Except for the avutil- i just included them all), located the root of my project.
Here is a file tree :distribution
├── libavcodec
│ ├── lib
│ │ └── x86
│ │ └── libavcodec.a
│ ├── avcodec.h
│ └── version.h
├── libavfilter
│ ├── lib
│ │ └── x86
│ │ └── libavfilter.a
│ ├── avfiltergraph.h
│ └── avfilter.h
├── libavformat
│ ├── lib
│ │ └── x86
│ │ └── libavformat.a
│ ├── avformat.h
│ ├── avio.h
│ └── version.h
├── libavutil
│ ├── lib
│ │ └── x86
│ │ └── libavutil.a
│ ├── attributes.h
│ ├── avconfig.h
│ ├── avutil.h
│ ├── buffer.h
│ ├── buffer_internal.h
│ ├── camellia.h
│ ├── cast5.h
│ ├── channel_layout.h
│ ├── colorspace.h
│ ├── color_utils.h
│ ├── common.h
│ ├── cpu.h
│ ├── cpu_internal.h
│ ├── crc.h
│ ├── des.h
│ ├── dict.h
│ ├── display.h
│ ├── downmix_info.h
│ ├── dynarray.h
│ ├── error.h
│ ├── eval.h
│ ├── ffmath.h
│ ├── ffversion.h
│ ├── fifo.h
│ ├── file.h
│ ├── fixed_dsp.h
│ ├── float_dsp.h
│ ├── frame.h
│ ├── hash.h
│ ├── hmac.h
│ ├── hwcontext_cuda.h
│ ├── hwcontext_cuda_internal.h
│ ├── hwcontext_dxva2.h
│ ├── hwcontext.h
│ ├── hwcontext_internal.h
│ ├── hwcontext_qsv.h
│ ├── hwcontext_vaapi.h
│ ├── hwcontext_vdpau.h
│ ├── imgutils.h
│ ├── integer.h
│ ├── internal.h
│ ├── intfloat.h
│ ├── intmath.h
│ ├── intreadwrite.h
│ ├── lfg.h
│ ├── libm.h
│ ├── lls.h
│ ├── log.h
│ ├── lzo.h
│ ├── macros.h
│ ├── mastering_display_metadata.h
│ ├── mathematics.h
│ ├── md5.h
│ ├── mem.h
│ ├── mem_internal.h
│ ├── motion_vector.h
│ ├── murmur3.h
│ ├── opencl.h
│ ├── opencl_internal.h
│ ├── opt.h
│ ├── parseutils.h
│ ├── pca.h
│ ├── pixdesc.h
│ ├── pixelutils.h
│ ├── pixfmt.h
│ ├── qsort.h
│ ├── random_seed.h
│ ├── rational.h
│ ├── rc4.h
│ ├── replaygain.h
│ ├── reverse.h
│ ├── ripemd.h
│ ├── samplefmt.h
│ ├── sha512.h
│ ├── sha.h
│ ├── softfloat.h
│ ├── softfloat_ieee754.h
│ ├── softfloat_tables.h
│ ├── spherical.h
│ ├── stereo3d.h
│ ├── tablegen.h
│ ├── tea.h
│ ├── thread.h
│ ├── threadmessage.h
│ ├── timecode.h
│ ├── time.h
│ ├── time_internal.h
│ ├── timer.h
│ ├── timestamp.h
│ ├── tree.h
│ ├── twofish.h
│ └── version.h
└── libswresample
├── lib
│ └── x86
│ └── libswresample.a
├── swresample.h
└── swresample_internal.hI edited my cmake to include the libraries :
add_library(
native-lib
SHARED
src/main/cpp/native-lib.cpp )
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../distribution)
add_library(lib_avcodec STATIC IMPORTED)
set_target_properties(lib_avcodec PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavcodec/lib/${ANDROID_ABI}/libavcodec.a)
add_library(lib_avfilter STATIC IMPORTED)
set_target_properties(lib_avfilter PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavfilter/lib/${ANDROID_ABI}/libavfilter.a)
add_library(lib_avformat STATIC IMPORTED)
set_target_properties(lib_avformat PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavformat/lib/${ANDROID_ABI}/libavformat.a)
add_library(lib_avutil STATIC IMPORTED)
set_target_properties(lib_avutil PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavutil/lib/${ANDROID_ABI}/libavutil.a)
add_library(lib_swresample STATIC IMPORTED)
set_target_properties(lib_swresample PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libswresample/lib/${ANDROID_ABI}/libswresample.a)
include_directories(
${distribution_DIR}
)
target_link_libraries(
native-lib
lib_avcodec
lib_avfilter
lib_avformat
lib_avutil
lib_swresample
)I also restricted the build to only x86, in my app build.gradle :
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
abiFilters 'x86'
}The project gradle sync worked successfully.
I wrote the following code in my cpp file :#include
extern "C"{
#include "libavformat/avformat.h"
}
JNIEXPORT void JNICALL
Java_com_example_david_testffmpegcpp_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
av_register_all ();
avformat_network_init ();
}Just to check if the library works, but i cant seem to link against the libraries correctly. It complains about undefined symbols.
What did i do wrong ?Error :
[2/2] Linking CXX shared library
..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so
FAILED: cmd.exe /C "cd . && D:\AndroidSDK\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=i686-none-linux-android --gcc-toolchain=D:/AndroidSDK/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64 --sysroot=D:/AndroidSDK/ndk-bundle/platforms/android-16/arch-x86 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -O0 -fno-limit-debug-info -O0 -fno-limit-debug-info -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -llog ../../../../../distribution/libavcodec/lib/x86/libavcodec.a ../../../../../distribution/libavfilter/lib/x86/libavfilter.a ../../../../../distribution/libavformat/lib/x86/libavformat.a ../../../../../distribution/libavutil/lib/x86/libavutil.a ../../../../../distribution/libswresample/lib/x86/libswresample.a -lm "D:/AndroidSDK/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && cd ."
src/libavformat/allformats.c:51: error: undefined reference to 'avcodec_register_all'
src/libavformat/id3v2.c:1009: error: undefined reference to 'uncompress'
src/libavformat/id3v2.c:1153: error: undefined reference to 'av_init_packet'
src/libavformat/matroskadec.c:1393: error: undefined reference to 'inflateInit_'
src/libavformat/matroskadec.c:1408: error: undefined reference to 'inflate'
src/libavformat/matroskadec.c:1401: error: undefined reference to 'inflateEnd'
src/libavformat/matroskadec.c:1411: error: undefined reference to 'inflateEnd'
src/libavformat/matroskadec.c:3113: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:3134: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:2855: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:3147: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:3022: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:3031: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:3042: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:3151: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskadec.c:2680: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskadec.c:963: error: undefined reference to 'av_fast_padded_malloc'
src/libavformat/matroskadec.c:2163: error: undefined reference to 'av_get_codec_tag_string'
src/libavformat/matroskadec.c:2680: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskadec.c:2579: error: undefined reference to 'av_init_packet'
src/libavformat/matroskadec.c:2580: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:1715: error: undefined reference to 'avpriv_mpeg4audio_sample_rates'
src/libavformat/matroskadec.c:1715: error: undefined reference to 'avpriv_mpeg4audio_sample_rates'
src/libavformat/matroskadec.c:1715: error: undefined reference to 'avpriv_mpeg4audio_sample_rates'
src/libavformat/matroskadec.c:1866: error: undefined reference to 'avcodec_chroma_pos_to_enum'
src/libavformat/matroskadec.c:2680: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskaenc.c:2482: error: undefined reference to 'avcodec_get_type'
src/libavformat/matroskaenc.c:646: error: undefined reference to 'avpriv_split_xiph_headers'
src/libavformat/matroskaenc.c:1066: error: undefined reference to 'av_get_bits_per_sample'
src/libavformat/matroskaenc.c:723: error: undefined reference to 'avpriv_mpeg4audio_get_config'
src/libavformat/matroskaenc.c:875: error: undefined reference to 'avcodec_enum_to_chroma_pos'
src/libavformat/matroskaenc.c:813: error: undefined reference to 'avcodec_get_name'
src/libavformat/matroskaenc.c:806: error: undefined reference to 'avcodec_get_name'
src/libavformat/matroskaenc.c:824: error: undefined reference to 'avcodec_get_name'
.....