
Recherche avancée
Médias (91)
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#1 The Wires
11 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (111)
-
Les formats acceptés
28 janvier 2010, parLes 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, parLe 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, parPour 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 mikkelamI'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 ChaithanyaI 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 OgnjanovicI 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:armhfAfter 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()