
Recherche avancée
Médias (1)
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (83)
-
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
L’utiliser, en parler, le critiquer
10 avril 2011La première attitude à adopter est d’en parler, soit directement avec les personnes impliquées dans son développement, soit autour de vous pour convaincre de nouvelles personnes à l’utiliser.
Plus la communauté sera nombreuse et plus les évolutions seront rapides ...
Une liste de discussion est disponible pour tout échange entre utilisateurs.
Sur d’autres sites (6197)
-
avformat/kvag : allow seeking to start
22 mars 2021, par Zane van Iperen -
avformat/pp_bnk : allow seeking to start
23 mars 2021, par Zane van Iperen -
Linker errors when building a simple c++ program with ffmpeg
15 février 2023, par Serban StoenescuI have this c++ program :


#include <iostream>

extern "C"
{
 #include <libavcodec></libavcodec>avcodec.h>
 #include <libavformat></libavformat>avformat.h>
 #include <libswscale></libswscale>swscale.h>

}

namespace hrean::ffmpeg
{
namespace detail
{
 
}//namespace detail

void testFFmpeg()
{
 AVFormatContext *avFormatContext = avformat_alloc_context();
 //I can comment out the rest of the function, the error is the same

} //testFFmpeg()

} //namespace hrean::ffmpeg


int main(int argc, char **argv)
{
 try
 {
 hrean::ffmpeg::testFFmpeg();
 }
 catch(const std::runtime_error& e)
 {
 std::cerr << "Error! " << e.what() << '\n';
 return -1;
 }
 catch(...)
 {
 std::cerr << "Unknown error\n";
 return -1;
 }
 
 return 0;
}
</iostream>


The CMakeLists.txt for this is :


cmake_minimum_required(VERSION 3.13)
project(hrean)

add_subdirectory(lib/ffmpeg-module)

message("[temp] FFMPEG_INCLUDE_DIRS = ${FFMPEG_INCLUDE_DIRS}")
message("[temp] FFMPEG_LIBRARIES = ${FFMPEG_LIBRARIES}")
add_executable(hrean-app src/main.cpp)
target_include_directories(hrean-app PUBLIC ${FFMPEG_INCLUDE_DIRS})
target_link_libraries(hrean-app PUBLIC ${FFMPEG_LIBRARIES})



The CMakeLists.txt for lib/ffmpeg-module contains only


find_package(FFmpeg REQUIRED MODULE)



The CMake output is :


-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libavcodec'
-- Found libavcodec, version 60.2.100
-- Checking for module 'libavformat'
-- Found libavformat, version 60.2.100
-- Checking for module 'libavdevice'
-- Found libavdevice, version 60.0.100
-- Checking for module 'libavutil'
-- Found libavutil, version 58.1.100
-- Checking for module 'libavfilter'
-- Found libavfilter, version 9.1.100
-- Checking for module 'libswscale'
-- Found libswscale, version 7.0.100
-- Checking for module 'libpostproc'
-- Found libpostproc, version 57.0.100
-- Checking for module 'libswresample'
-- Found libswresample, version 4.9.100
-- Found FFmpeg: /home/serban/ffmpeg_build/lib/libavcodec.a;/home/serban/ffmpeg_build/lib/libavformat.a;/home/serban/ffmpeg_build/lib/libavutil.a 
[temp] FFMPEG_INCLUDE_DIRS = /home/serban/ffmpeg_build/include
[temp] FFMPEG_LIBRARIES = /home/serban/ffmpeg_build/lib/libavcodec.a;/home/serban/ffmpeg_build/lib/libavformat.a;/home/serban/ffmpeg_build/lib/libavutil.a
-- Configuring done
-- Generating done
-- Build files have been written to: /home/serban/Work/hrean/build



When I run make, I get the following errors. The problem is, this worked perfectly yesterday and I changed nothing. I create a new Ubuntu virtual machine, everything fresh and I still get the same problem. The output is 1000+ lines long, here is some of it :


[ 50%] Building CXX object CMakeFiles/hrean-app.dir/src/main.cpp.o
[100%] Linking CXX executable hrean-app
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(amvenc.o): in function `amv_write_packet':
/home/serban/ffmpeg/libavformat/amvenc.c:356: undefined reference to `av_packet_unref'
/usr/bin/ld: /home/serban/ffmpeg/libavformat/amvenc.c:357: undefined reference to `av_packet_ref'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(amvenc.o): in function `amv_deinit':
/home/serban/ffmpeg/libavformat/amvenc.c:209: undefined reference to `av_packet_free'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(amvenc.o): in function `amv_init':
/home/serban/ffmpeg/libavformat/amvenc.c:111: undefined reference to `avcodec_get_name'
/usr/bin/ld: /home/serban/ffmpeg/libavformat/amvenc.c:117: undefined reference to `avcodec_get_name'
/usr/bin/ld: /home/serban/ffmpeg/libavformat/amvenc.c:188: undefined reference to `av_new_packet'
/usr/bin/ld: /home/serban/ffmpeg/libavformat/amvenc.c:196: undefined reference to `av_packet_alloc'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `asf_read_close':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1413: undefined reference to `av_packet_free'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `asf_read_single_payload':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1119: undefined reference to `av_new_packet'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `asf_read_packet':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1388: undefined reference to `av_packet_move_ref'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `reset_packet':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1030: undefined reference to `av_packet_unref'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `asf_deinterleave':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1313: undefined reference to `av_packet_unref'
/usr/bin/ld: /home/serban/ffmpeg/libavformat/asfdec_o.c:1314: undefined reference to `av_packet_from_data'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `asf_read_replicated_data':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1043: undefined reference to `av_new_packet'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `asf_read_timestamp':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1463: undefined reference to `av_packet_alloc'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `reset_packet':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1030: undefined reference to `av_packet_unref'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(asfdec_o.o): in function `asf_read_timestamp':
/home/serban/ffmpeg/libavformat/asfdec_o.c:1512: undefined reference to `av_packet_unref'



Any idea how to debug this ?


Later edit :
This is the find script I am using : FindFFmpeg.cmake
I changed the way I link to the libraries, this way causes the least amount of errors :


set(ORDERED_FFMPEG_LIBRARIES ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${AVUTIL_LIBRARIES})
message("[temp] ORDERED_FFMPEG_LIBRARIES=${ORDERED_FFMPEG_LIBRARIES}")
add_executable(hrean-app src/main.cpp)

target_include_directories(hrean-app PUBLIC ${FFMPEG_INCLUDE_DIRS})
target_link_libraries(hrean-app PUBLIC ${ORDERED_FFMPEG_LIBRARIES})



The errors are similar, but they seem to point to other locations :


[100%] Linking CXX executable hrean-app
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(mov.o): in function `mov_read_cmov':
/home/serban/ffmpeg/libavformat/mov.c:5578: undefined reference to `uncompress'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(swfdec.o): in function `swf_read_packet':
/home/serban/ffmpeg/libavformat/swfdec.c:393: undefined reference to `uncompress'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(swfdec.o): in function `swf_read_header':
/home/serban/ffmpeg/libavformat/swfdec.c:161: undefined reference to `inflateInit_'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(swfdec.o): in function `zlib_refill':
/home/serban/ffmpeg/libavformat/swfdec.c:134: undefined reference to `inflate'
/usr/bin/ld: /home/serban/ffmpeg_build/lib/libavformat.a(swfdec.o): in function `swf_read_close':
/home/serban/ffmpeg/libavformat/swfdec.c:557: undefined reference to `inflateEnd'



Do I have to link to anything else ?


Regards,
Serban