Recherche avancée

Médias (91)

Autres articles (111)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

Sur d’autres sites (5258)

  • Cross device h264 compatible html5 video

    26 juin 2021, par mikkelam

    I'm trying to serve a large video of timelapses generated from a series of images.
    
Using FFmpeg I have encoded the video as an h264 mp4.

    


    ffmpeg -framerate 24 -i "/app/download/%d.jpeg" -c:v libx264 -crf 23 -preset fast -tune animation -report -vf "format=yuv420p" -y /app/output.mp4


    


    I'm running into compatibility issues where the videos are not playable on iOS (safari) as well as on Windows (all browsers except chrome). Where I'm getting the following error :

    


    Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) Details: mozilla::MediaResult __cdecl mozilla::WMFVideoMFTManager::ValidateVideoInfo(void): Can't decode H.264 stream because its resolution is out of the maximum limitation

    


    See the full FFmpeg log here : https://pastebin.com/QUEPh3q2

    


    I'm just looking for some resource or knowledge of how to encode my media for maximum compatibility while still preserving high quality and resolution.

    


    Problem :
    
Which options I should be using in FFmpeg to maximize compatibility ?

    


  • linker error in Android NDK r25c when cross-compiling FFmpeg

    5 août 2023, par Sai Chaithanya

    I am cross compiling FFmpeg for Android(aarch64) using Android NDK r25c on Linux x86_64 platform. The errors generated by the linker are because of enabling the LTO option.
    
On disabling the LTO options(--enable-lto optional config and -flto=thin cc-flag), there are no failures.

    


    FFmpeg config :

    


    ./configure --arch=aarch64 --target-os=android --enable-cross-compile --disable-everything \ 
 --disable-network --disable-autodetect --enable-small --disable-debug --disable-doc \ 
 --disable-manpages --disable-podpages --disable-txtpages --disable-htmlpages --disable-shared \
 --enable-static --enable-decoder='aac*,ac3*,opus,vorbis,mjpeg,mp3' \ 
 --enable-demuxer='mov,m4v,matroska,image2,mp3' --enable-protocol=file --enable-muxer='mp3,mp4,webm,null' \  
 --enable-libmp3lame --enable-encoder=libmp3lame --enable-filter=aresample --enable-logging \ 
 --enable-pthreads --enable-parser='vorbis,opus,vp8,vp9,mjpeg,h264,aac*,ac3*,mpegvideo,mpegaudio,mpeg4video' \
 --disable-ffprobe --disable-ffplay --prefix='$HOME/Downloads/custom_build' --enable-lto \
 --extra-cflags="-I$HOME/Downloads/custom_build/include -I$HOME/Downloads/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/include -O3 -flto=thin" \
 --extra-ldflags="-L$HOME/Downloads/custom_build/lib -L$HOME/Downloads/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/lib64" \
 --cc="aarch64-linux-android33-clang" --nm=llvm-nm --strip=llvm-strip


    


    Error :

    


    ld: error: undefined symbol: av_packet_alloc
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced 10 more times

ld: error: undefined symbol: av_usleep
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(main)
>>> referenced by ld-temp.o
>>>               lto.tmp:(retry_transfer_wrapper)

ld: error: undefined symbol: av_log
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced 745 more times

ld: error: undefined symbol: av_thread_message_queue_send
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced 1 more times

ld: error: undefined symbol: av_thread_message_queue_recv
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(main)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ffmpeg_cleanup)

ld: error: undefined symbol: av_rescale_q
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced 62 more times

ld: error: undefined symbol: av_packet_move_ref
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(submit_packet)
>>> referenced by ld-temp.o
>>>               lto.tmp:(pkt_move)
>>> referenced 3 more times

ld: error: undefined symbol: av_thread_message_queue_set_err_recv
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)

ld: error: undefined symbol: av_packet_free
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(input_thread)
>>> referenced by ld-temp.o
>>>               lto.tmp:(mux_check_init)
>>> referenced 13 more times

ld: error: undefined symbol: av_compare_ts
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_duration_update)
>>> referenced by ld-temp.o
>>>               lto.tmp:(finish_stream)
>>> referenced by ld-temp.o
>>>               lto.tmp:(finish_stream)
>>> referenced 10 more times

ld: error: undefined symbol: av_dict_set_int
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(of_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(mov_read_ftyp)
>>> referenced 1 more times

ld: error: undefined symbol: av_dict_get
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(configure_filtergraph)
>>> referenced by ld-temp.o
>>>               lto.tmp:(main)
>>> referenced 25 more times

ld: error: undefined symbol: av_opt_set_dict
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(init_output_stream_wrapper)
>>> referenced 4 more times

ld: error: undefined symbol: av_strdup
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced 29 more times

ld: error: undefined symbol: av_mallocz
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(graph_parse)
>>> referenced by ld-temp.o
>>>               lto.tmp:(graph_parse)
>>> referenced 62 more times

ld: error: undefined symbol: av_opt_set_defaults
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(avfilter_graph_alloc)
>>> referenced by ld-temp.o
>>>               lto.tmp:(avfilter_graph_alloc_filter)
>>> referenced 5 more times

ld: error: undefined symbol: av_fast_malloc
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)

ld: error: undefined symbol: av_free
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced 62 more times

ld: error: undefined symbol: av_freep
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced 205 more times

ld: error: undefined symbol: av_asprintf
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(ifile_open)
>>> referenced by ld-temp.o
>>>               lto.tmp:(describe_filter_link)
>>> referenced 3 more times

ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:131: ffmpeg_g] Error 1


    


    I also compiled LAME encoder (version 3.100) with LTO options, and it worked just fine.
    
How to resolve the error ?

    


    **The libLTO.so file is present under lib64/ hence added that to the —extra-ldflags optional config.
    
**PATH env contains $HOME/Downloads/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin

    


  • Cross compiling OpenCV with ffmpeg

    24 mai 2019, par Stevan Ognjanovic

    I am trying to cross compile OpenCV 3.2 with ffpmeg from sources for armhf architecture on Ubuntu amd64. I have installed libraries for ffmpeg using

       sudo apt-get install libavcodec-dev:armhf libavformat-dev:armhf libswscale-dev:armhf
       sudo apt-get install libjpeg-dev:armhf libpng-dev:armhf libtiff-dev:armhf libjasper-dev:armhf

    After cloning OpenCV from github I ran cmake with following command

       cmake -DENABLE_NEON=ON -DENABLE_VFPV3=ON -DWITH_FFMPEG=ON  -DCMAKE_TOOLCHAIN_FILE=../opencv/platforms/linux/arm-gnueabi.toolchain.cmake ../opencv

    The output shows that all of the installed libraries can not be found. I don’t know how to resolve this. There are also two folders which store armhf libs /usr/arm-linux-gnueabihf/lib and /usr/lib/arm-linux-gnueabihf so I am not sure if cmake is looking in the right directory and how to change that. Toolchain files look like this

    arm-gnueabi.toolchain.cmake

       set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")
       set(GNU_MACHINE "arm-linux-gnueabi" CACHE STRING "GNU compiler triple")
       include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake")

    arm.toolchain.cmake

    if(COMMAND toolchain_save_config)
     return() # prevent recursive call
    endif()

    set(CMAKE_SYSTEM_NAME Linux)
    set(CMAKE_SYSTEM_VERSION 1)
    if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR)
     set(CMAKE_SYSTEM_PROCESSOR arm)
    else()
     #message("CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}")
    endif()

    include("${CMAKE_CURRENT_LIST_DIR}/gnu.toolchain.cmake")

    if(CMAKE_SYSTEM_PROCESSOR STREQUAL arm AND NOT ARM_IGNORE_FP)
     set(FLOAT_ABI_SUFFIX "")
     if(NOT SOFTFP)
       set(FLOAT_ABI_SUFFIX "hf")
     endif()
    endif()

    if(NOT "x${GCC_COMPILER_VERSION}" STREQUAL "x")
     set(__GCC_VER_SUFFIX "-${GCC_COMPILER_VERSION}")
    endif()

    if(NOT DEFINED CMAKE_C_COMPILER)
     find_program(CMAKE_C_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX})
    else()
     #message(WARNING "CMAKE_C_COMPILER=${CMAKE_C_COMPILER} is defined")
    endif()
    if(NOT DEFINED CMAKE_CXX_COMPILER)
     find_program(CMAKE_CXX_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX})
    else()
     #message(WARNING "CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} is defined")
    endif()
    if(NOT DEFINED CMAKE_LINKER)
     find_program(CMAKE_LINKER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld)
    else()
     #message(WARNING "CMAKE_LINKER=${CMAKE_LINKER} is defined")
    endif()
    if(NOT DEFINED CMAKE_AR)
     find_program(CMAKE_AR NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar)
    else()
     #message(WARNING "CMAKE_AR=${CMAKE_AR} is defined")
    endif()

    if(NOT DEFINED ARM_LINUX_SYSROOT AND DEFINED GNU_MACHINE)
     set(ARM_LINUX_SYSROOT /usr/lib/${GNU_MACHINE}${FLOAT_ABI_SUFFIX})
    endif()

    if(NOT DEFINED CMAKE_CXX_FLAGS)
     set(CMAKE_CXX_FLAGS           "" CACHE INTERAL "")
     set(CMAKE_C_FLAGS             "" CACHE INTERAL "")
     set(CMAKE_SHARED_LINKER_FLAGS "" CACHE INTERAL "")
     set(CMAKE_MODULE_LINKER_FLAGS "" CACHE INTERAL "")
     set(CMAKE_EXE_LINKER_FLAGS    "" CACHE INTERAL "")

     set(CMAKE_CXX_FLAGS           "${CMAKE_CXX_FLAGS} -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi")
     set(CMAKE_C_FLAGS             "${CMAKE_C_FLAGS} -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi")
     if(CMAKE_SYSTEM_PROCESSOR STREQUAL arm)
       set(CMAKE_CXX_FLAGS           "-mthumb ${CMAKE_CXX_FLAGS}")
       set(CMAKE_C_FLAGS             "-mthumb ${CMAKE_C_FLAGS}")
       set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,nocopyreloc")
     endif()
     if(CMAKE_SYSTEM_PROCESSOR STREQUAL arm)
       set(ARM_LINKER_FLAGS "-Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
     elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64)
       set(ARM_LINKER_FLAGS "-Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
     endif()
     set(CMAKE_SHARED_LINKER_FLAGS "${ARM_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS}")
     set(CMAKE_MODULE_LINKER_FLAGS "${ARM_LINKER_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
     set(CMAKE_EXE_LINKER_FLAGS    "${ARM_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
    else()
     #message(WARNING "CMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}' is defined")
    endif()

    if(USE_NEON)
     message(WARNING "You use obsolete variable USE_NEON to enable NEON instruction set. Use -DENABLE_NEON=ON instead." )
     set(ENABLE_NEON TRUE)
    elseif(USE_VFPV3)
     message(WARNING "You use obsolete variable USE_VFPV3 to enable VFPV3 instruction set. Use -DENABLE_VFPV3=ON instead." )
     set(ENABLE_VFPV3 TRUE)
    endif()

    set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${ARM_LINUX_SYSROOT})

       if(EXISTS ${CUDA_TOOLKIT_ROOT_DIR})
         set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${CUDA_TOOLKIT_ROOT_DIR})
       endif()

       set(TOOLCHAIN_CONFIG_VARS ${TOOLCHAIN_CONFIG_VARS}
           ARM_LINUX_SYSROOT
           ENABLE_NEON
           ENABLE_VFPV3
           CUDA_TOOLKIT_ROOT_DIR
       )
       toolchain_save_config()