Recherche avancée

Médias (0)

Mot : - Tags -/alertes

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (41)

  • Participer à sa documentation

    10 avril 2011

    La documentation est un des travaux les plus importants et les plus contraignants lors de la réalisation d’un outil technique.
    Tout apport extérieur à ce sujet est primordial : la critique de l’existant ; la participation à la rédaction d’articles orientés : utilisateur (administrateur de MediaSPIP ou simplement producteur de contenu) ; développeur ; la création de screencasts d’explication ; la traduction de la documentation dans une nouvelle langue ;
    Pour ce faire, vous pouvez vous inscrire sur (...)

  • 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 : (...)

  • Support audio et vidéo HTML5

    10 avril 2011

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

  • Unable to find replacement for -vol [closed]

    21 février 2024, par Michael Benton

    I'm referring to this thread posted years ago.

    


    While I was testing Downmixing without discarding the LFE channel (Dave_750's answer) on ffmpeg, which included the formula

    


    ffmpeg -i "sourcetrack.dts" -c dca -vol 425 -af "pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3" "outputstereo.dts"


    


    the cmd raised the following error :

    


    Unrecognized option 'vol'. Error splitting the argument list: Option not found


    


    The formula I put in cmd wasn't the same as the one in the thread at the beginning, because I replaced in it the attributes of my ac3 track.

    


    ffmpeg -i "inputsurround.ac3" -vol 425 -af "pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3" -c:a ac3 -b:a 320k -ar 48000 "outputstereo.ac3"


    


    Through this thread, I discovered that the -vol function was deprecated years ago.

    


    I found another thread where the syntax used was

    


    -af volume=N


    


    (where N stands for a percentage or, if N is followed by "dB", a dB value).

    


    I'm not sure if -af volume behaves exactly like -vol while downmixing to stereo the ac3.

    


    I went back editing the formula :

    


    ffmpeg -i "inputsurround.ac3" -af "volume=425" -af "pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3" -c:a ac3 -b:a 320k -ar 48000 "outputstereo.ac3"


    


    It raised the following warning (which didn't stop the file generation) :

    


    Multiple -filter/-af/-vf options specified for stream 0, only the last option '-filter:a pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3' will be used


    


    As I already suspected, I couldn't use two "-af" in the same command. The generated file is useless, because ffmpeg only applied one of the two commands. I also tried with N defined in dB, with no success.

    


    I continued my search and, from another thread, I learned that I could use

    


    -filter_complex "[1] formula1;[0] formula2"


    


    to resolve my issue.

    


    My formula then became :

    


    ffmpeg -i "inputsurround.ac3" -filter_complex "[1]volume=425;[0]pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3" -c:a ac3 -b:a 320k -ar 48000 "outputstereo.ac3"


    


    And it still raised an error :

    


    Invalid file index 1 in filtergraph description [1]volume=425;[0]pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3.
Error initializing complex filters: Invalid argument


    


    To simplify the formula, I went back using -af with the properties of -filter_complex. And I got :

    


    ffmpeg -i "inputsurround.ac3" -af "[1]volume=425;[0]pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3" -c:a ac3 -b:a 320k -ar 48000 "outputstereo.ac3"


    


    Again, another error :

    


    Simple filtergraph '[1]volume=425;[0]pan=stereo|c0=0.5*c2+0.707*c0+0.707*c4+0.5*c3|c1=0.5*c2+0.707*c1+0.707*c5+0.5*c3' was expected to have exactly 1 input and 1 output. However, it had 2 input(s) and 2 output(s). Please adjust, or use a complex filtergraph (-filter_complex) instead.
[aost#0:0/ac3 @ 000001d83b4c4200] Error initializing a simple filtergraph
Error opening output file outputstereo.ac3.
Error opening output files: Invalid argument


    


    whether I used a semicolon or comma as a separator.

    


    I'm completely lost at this point as I don't have deep knowledge of the topic.

    


      

    • has -vol been deprecated or I've searched badly/it's a syntax typo ?

      


    • 


    • if -vol has been deprecated, is there a way to rewrite the formula such that it outputs the result intended by the original user ?

      


    • 


    • if I replace c0, c1, c2, c3, c4, c5 to FL, FR, FC, LF, BL, BR in the formula, would I get a different channel layout ? (my file is : L, R, C, LFE, Ls, Rs)

      


    • 


    


    I'll try to clear every doubt. Any help is highly appreciated !

    


  • A Comprehensive Guide to Robust Digital Marketing Analytics

    30 octobre 2023, par Erin

    First impressions are everything. This is not only true for dating and job interviews but also for your digital marketing strategy. Like a poorly planned resume getting tossed in the “no thank you” pile, 38% of visitors to your website will stop engaging with your content if they find the layout unpleasant. Thankfully, digital marketers can access data that can be harnessed to optimise websites and turn those “no thank you’s” into “absolutely’s.”

    So, how can we transform raw data into valuable insights that pay off ? The key is web analytics tools that can help you make sense of it all while collecting data ethically. In this article, we’ll equip you with ways to take your digital marketing strategy to the next level with the power of web analytics.

    What are the different types of digital marketing analytics ?

    Digital marketing analytics are like a cipher into the complex behaviour of your buyers. Digital marketing analytics help collect, analyse and interpret data from any touchpoint you interact with your buyers online. Whether you’re trying to gauge the effectiveness of a new email marketing campaign or improve your mobile app layout, there’s a way for you to make use of the insights you gain. 

    As we go through the eight commonly known types of digital marketing analytics, please note we’ll primarily focus on what falls under the umbrella of web analytics. 

    1. Web analytics help you better understand how users interact with your website. Good web analytics tools will help you understand user behaviour while securely handling user data. 
    2. Learn more about the effectiveness of your organisation’s social media platforms with social media analytics. Social media analytics include user engagement, post reach and audience demographics. 
    3. Email marketing analytics help you see how email campaigns are being engaged with.
    4. Search engine optimisation (SEO) analytics help you understand your website’s visibility in search engine results pages (SERPs). 
    5. Pay-per-click (PPC) analytics measure the performance of paid advertising campaigns.
    6. Content marketing analytics focus on how your content is performing with your audience. 
    7. Customer analytics helps organisations identify and examine buyer behaviour to retain the biggest spenders. 
    8. Mobile app analytics track user interactions within mobile applications. 

    Choosing which digital marketing analytics tools are the best fit for your organisation is not an easy task. When making these decisions, it’s critical to remember the ethical implications of data collection. Although data insights can be invaluable to your organisation, they won’t be of much use if you lose the trust of your users. 

    Tips and best practices for developing robust digital marketing analytics 

    So, what separates top-notch, robust digital marketing analytics from the rest ? We’ve already touched on it, but a big part involves respecting user privacy and ethically handling data. Data security should be on your list of priorities, alongside conversion rate optimisation when developing a digital marketing strategy. In this section, we will examine best practices for using digital marketing analytics while retaining user trust.

    Lightbulb with a target in the center being struck by arrows

    Clear objectives

    Before comparing digital marketing analytics tools, you should define clear and measurable goals. Try asking yourself what you need your digital marketing analytics strategy to accomplish. Do you want to improve conversion rates while remaining data compliant ? Maybe you’ve noticed users are not engaging with your platform and want to fix that. Save yourself time and energy by focusing on the most relevant pain points and areas of improvement.

    Choose the right tools for the job

    Don’t just base your decision on what other people tell you. Take the tool for a test drive — free trials allow you to test features and user interfaces and learn more about the platform before committing. When choosing digital marketing analytics tools, look for ones that ensure compliance with privacy laws like GDPR.

    Don’t overlook data compliance

    GDPR ensures organisations prioritise data protection and privacy. You could be fined up to €20 million, or 4% of the previous year’s revenue for violations. Without data compliance practices, you can say goodbye to the time and money spent on digital marketing strategies. 

    Don’t sacrifice data quality and accuracy

    Inaccurate and low-quality data can taint your analysis, making it hard to glean valuable insights from your digital marketing analytics efforts. Regularly audit and clean your data to remove inaccuracies and inconsistencies. Address data discrepancies promptly to maintain the integrity of your analytics. Data validation measures also help to filter out inaccurate data.

    Communicate your findings

    Having insights is one thing ; effectively communicating complex data findings is just as important. Customise dashboards to display key metrics aligned with your objectives. Make sure to automate reports, allowing stakeholders to stay updated without manual intervention. 

    Understand the user journey

    To optimise your conversion rates, you need to understand the user journey. Start by analysing visitors interactions with your website — this will help you identify conversion bottlenecks in your sales or lead generation processes. Implement A/B testing for landing page optimisation, refining elements like call-to-action buttons or copy, and leverage Form Analytics to make informed, data-driven improvements to your forms.

    Continuous improvement

    Learn from the data insights you gain, and iterate your marketing strategies based on the findings. Stay updated with evolving web analytics trends and technologies to leverage new growth opportunities.

    Why you need web analytics to support your digital marketing analytics toolbox

    You wouldn’t set out on a roadtrip without a map, right ? Digital marketing analytics without insights into how users interact with your website are just as useless. Used ethically, web analytics tools can be an invaluable addition to your digital marketing analytics toolbox. 

    The data collected via web analytics reveals user interactions with your website. These could include anything from how long visitors stay on your page to their actions while browsing your website. Web analytics tools help you gather and understand this data so you can better understand buyer preferences. It’s like a domino effect : the more you understand your buyers and user behaviour, the better you can assess the effectiveness of your digital content and campaigns. 

    Web analytics reveal user behaviour, highlighting navigation patterns and drop-off points. Understanding these patterns helps you refine website layout and content, improving engagement and conversions for a seamless user experience.

    Magnifying glass examining various screens that contain data

    Concrete CMS harnessed the power of web analytics, specifically Form Analytics, to uncover a crucial insight within their user onboarding process. Their data revealed a significant issue : the “address” input field was causing visitors to drop off and not complete the form, severely impacting the overall onboarding experience and conversion rate.

    Armed with these insights, Concrete CMS made targeted optimisations to the form, resulting in a substantial transformation. By addressing the specific issue identified through Form Analytics, they achieved an impressive outcome – a threefold increase in lead generation.

    This case is a great example of how web analytics can uncover customer needs and preferences and positively impact conversion rates. 

    Ethical implications of digital marketing analytics

    As we’ve touched on, digital marketing analytics are a powerful tool to help better understand online user behaviour. With great power comes great responsibility, however, and it’s a legal and ethical obligation for organisations to protect individual privacy rights. Let’s get into the benefits of practising ethical digital marketing analytics and the potential risks of not respecting user privacy : 

    • If someone uses your digital platform and then opens their email one day to find it filled with random targeted ad campaigns, they won’t be happy. Avoid losing user trust — and facing a potential lawsuit — by informing users what their data will be used for. Give them the option to consent to opt-in or opt-out of letting you use their personal information. If users are also assured you’ll safeguard personal information against unauthorised access, they’ll be more likely to trust you to handle their data securely.
    • Protecting data against breaches means investing in technology that will let you end-to-end encrypt and securely store data. Other important data-security best practices include access control, backing up data regularly and network and physical security of assets.
    • A fine line separates digital marketing analytics and misusing user data — many companies have gotten into big trouble for crossing it. (By big trouble, we mean millions of dollars in fines.) When it comes to digital marketing analytics, you should never cut corners when it comes to user privacy and data security. This balance involves understanding what data can be collected and what should be collected and respecting user boundaries and preferences.

    Learn more 

    We discussed a lot of facets of digital marketing analytics, namely how to develop a robust digital marketing strategy while prioritising data compliance. With Matomo, you can protect user data and respect user privacy while gaining invaluable insights into user behaviour. Save your organisation time and money by investing in a web analytics solution that gives you the best of both worlds. 

    If you’re ready to begin using ethical and robust digital marketing analytics on your website, try Matomo. Start your 21-day free trial now — no credit card required.

  • Ffmpeg c++ can't compile with libxh264

    10 septembre 2022, par Turgut

    I made a program that uses the source version of ffmpeg. I get the code from it's website and compile/configured it. The problem is I want to configure it with the libx264 flag so it looks like this :

    


    ./configure --enable-shared --enable-libx264 --enable-gpl


    


    Ffmpeg itself compiles with no errors, however when I try to compile my own code using make I get this error :

    


    /usr/bin/cmake -E cmake_link_script CMakeFiles/Renderer.dir/link.txt --verbose=1
/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/Renderer.dir/src/main.cpp.o CMakeFiles/Renderer.dir/src/Application.cpp.o CMakeFiles/Renderer.dir/src/opengl/OpenGLRenderer.cpp.o CMakeFiles/Renderer.dir/src/opengl/texture.cpp.o CMakeFiles/Renderer.dir/src/opengl/text_render.cpp.o CMakeFiles/Renderer.dir/src/opengl/image_render.cpp.o CMakeFiles/Renderer.dir/src/logging/Log.cpp.o CMakeFiles/Renderer.dir/src/utils/color_converter.cpp.o CMakeFiles/Renderer.dir/src/utils/maths.cpp.o CMakeFiles/Renderer.dir/src/utils/sys_util.cpp.o CMakeFiles/Renderer.dir/src/types/segment.cpp.o CMakeFiles/Renderer.dir/src/types/timeline.cpp.o CMakeFiles/Renderer.dir/src/coms/json_parser.cpp.o CMakeFiles/Renderer.dir/src/coms/socket.cpp.o CMakeFiles/Renderer.dir/src/video_io/video_encoder.cpp.o CMakeFiles/Renderer.dir/src/video_io/video_decode.cpp.o CMakeFiles/Renderer.dir/src/video_io/audio_mixer.cpp.o CMakeFiles/Renderer.dir/lib/glad/src/glad.c.o -o bin/Renderer  /usr/local/lib/libavformat.a /usr/local/lib/libavcodec.a /usr/local/lib/libswresample.a /usr/local/lib/libswscale.a /usr/local/lib/libavutil.a /usr/local/lib/libavdevice.a /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libfreetype.so lib/glfw/src/libglfw3.a lib/spdlog/libspdlog.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/librt.a -lm -ldl /usr/lib/x86_64-linux-gnu/libX11.so 
/usr/bin/ld: /usr/local/lib/libavcodec.a(libx264.o): in function `X264_frame':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:349: undefined reference to `x264_picture_init'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:518: undefined reference to `x264_encoder_encode'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:551: undefined reference to `x264_encoder_delayed_frames'
/usr/bin/ld: /usr/local/lib/libavcodec.a(libx264.o): in function `reconfig_encoder':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:297: undefined reference to `x264_encoder_reconfig'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:212: undefined reference to `x264_encoder_reconfig'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:224: undefined reference to `x264_encoder_reconfig'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:250: undefined reference to `x264_encoder_reconfig'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:217: undefined reference to `x264_encoder_reconfig'
/usr/bin/ld: /usr/local/lib/libavcodec.a(libx264.o):/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:230: more undefined references to `x264_encoder_reconfig' follow
/usr/bin/ld: /usr/local/lib/libavcodec.a(libx264.o): in function `X264_close':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:605: undefined reference to `x264_param_cleanup'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:609: undefined reference to `x264_encoder_close'
/usr/bin/ld: /usr/local/lib/libavcodec.a(libx264.o): in function `parse_opts':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:621: undefined reference to `x264_param_parse'
/usr/bin/ld: /usr/local/lib/libavcodec.a(libx264.o): in function `X264_init':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:699: undefined reference to `x264_param_default'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:704: undefined reference to `x264_param_default_preset'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:729: undefined reference to `x264_param_parse'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:763: undefined reference to `x264_param_parse'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:795: undefined reference to `x264_levels'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:820: undefined reference to `x264_param_parse'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:821: undefined reference to `x264_param_parse'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:822: undefined reference to `x264_param_parse'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:823: undefined reference to `x264_param_parse'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:883: undefined reference to `x264_param_apply_fastfirstpass'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:924: undefined reference to `x264_param_apply_profile'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:1012: undefined reference to `x264_param_parse'From the updated error it appears you're explicitly linking with /usr/local/lib/libavcodec.a etc. So the problem almost certainly lies with your CMakeLists.txt file(s). – 

/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:1032: undefined reference to `x264_encoder_open_163'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:1041: undefined reference to `x264_encoder_headers'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/libx264.c:1072: undefined reference to `x264_encoder_maximum_delayed_frames'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode_h264.o): in function `vaapi_encode_h264_configure':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode_h264.c:1096: undefined reference to `vaQueryVendorString'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode_h265.o): in function `vaapi_encode_h265_get_encoder_caps':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode_h265.c:1176: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode_h265.c:1190: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_wait':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:157: undefined reference to `vaSyncBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:168: undefined reference to `vaSyncSurface'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:170: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:161: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_free_output_buffer':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2412: undefined reference to `vaDestroyBuffer'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_make_packed_header':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:60: undefined reference to `vaCreateBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:71: undefined reference to `vaCreateBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:64: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:75: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_make_param_buffer':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:101: undefined reference to `vaCreateBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:104: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_alloc_output_buffer':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2430: undefined reference to `vaCreateBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2435: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2447: undefined reference to `vaDestroyBuffer'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_issue':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:637: undefined reference to `vaDestroyBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:583: undefined reference to `vaBeginPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:592: undefined reference to `vaRenderPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:601: undefined reference to `vaEndPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:618: undefined reference to `vaDestroyBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:621: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:595: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:634: undefined reference to `vaEndPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:586: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:603: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_output':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:668: undefined reference to `vaMapBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:699: undefined reference to `vaUnmapBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:701: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:671: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:715: undefined reference to `vaUnmapBuffer'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_profile_entrypoint':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1381: undefined reference to `vaMaxNumProfiles'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1387: undefined reference to `vaQueryConfigProfiles'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1389: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1411: undefined reference to `vaProfileStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1441: undefined reference to `vaMaxNumEntrypoints'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1447: undefined reference to `vaQueryConfigEntrypoints'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1450: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1474: undefined reference to `vaEntrypointStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1499: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1503: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_init_rate_control':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1574: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1578: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_init_gop_structure':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1953: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1958: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1977: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1982: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_init_slice_structure':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2206: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2211: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_init_packed_headers':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2269: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2274: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_init_roi':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2377: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2382: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_init_quality':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2331: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2336: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `vaapi_encode_init_max_frame_size':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1902: undefined reference to `vaGetConfigAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:1908: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `ff_vaapi_encode_init':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2630: undefined reference to `vaCreateConfig'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2635: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2646: undefined reference to `vaCreateContext'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2653: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2727: undefined reference to `vaSyncBuffer'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_encode.o): in function `ff_vaapi_encode_close':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2762: undefined reference to `vaDestroyContext'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_encode.c:2767: undefined reference to `vaDestroyConfig'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `ff_vaapi_decode_destroy_buffers':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:133: undefined reference to `vaDestroyBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:143: undefined reference to `vaDestroyBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:146: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:136: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `vaapi_decode_make_config':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:468: undefined reference to `vaMaxNumProfiles'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:476: undefined reference to `vaQueryConfigProfiles'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:540: undefined reference to `vaCreateConfig'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `vaapi_decode_find_best_format':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:310: undefined reference to `vaQuerySurfaceAttributes'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:322: undefined reference to `vaQuerySurfaceAttributes'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `vaapi_decode_make_config':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:624: undefined reference to `vaDestroyConfig'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:479: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:544: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `vaapi_decode_find_best_format':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:325: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:313: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `ff_vaapi_decode_make_param_buffer':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:44: undefined reference to `vaCreateBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:47: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `ff_vaapi_decode_make_slice_buffer':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:90: undefined reference to `vaCreateBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:104: undefined reference to `vaCreateBuffer'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:95: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:109: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:112: undefined reference to `vaDestroyBuffer'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `ff_vaapi_decode_issue':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:163: undefined reference to `vaBeginPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:172: undefined reference to `vaRenderPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:181: undefined reference to `vaRenderPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:190: undefined reference to `vaEndPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:192: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:166: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:210: undefined reference to `vaEndPicture'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:212: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:175: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:184: undefined reference to `vaErrorStr'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `ff_vaapi_common_frame_params':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:650: undefined reference to `vaDestroyConfig'
/usr/bin/ld: /usr/local/lib/libavcodec.a(vaapi_decode.o): in function `ff_vaapi_decode_uninit':
/home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:707: undefined reference to `vaDestroyContext'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:709: undefined reference to `vaErrorStr'
/usr/bin/ld: /home/turgut/Desktop/CppProjects/videoo-render/lib/ffmpeg/libavcodec/vaapi_decode.c:715: undefined reference to `vaDestroyConfig'


    


    (The error is a bit longer but I think this is ample for now.)

    


    The thing is, this code also runs on the cloud and compiles just fine without the --enable-libx264 flags. And inside the cloud, it works just fine even with the libx264 flag. But when I follow the exact same steps as the cloud and try to compile it locally, it gives this error.

    


    Here are the steps I have followed :

    


    First I removed ffmpeg (It was a bit messy) using sudo apt-get --purge autoremove ffmpeg then I made sure its deleted by searching find / -name ffmpeg and manually deleting my findings. Then, I ran apt-get install -y libx264-dev, followed by ./configure --enable-shared --enable-libx264 --enable-gpl inside the directory where I have downloaded the source files. Then ran make and make install where ffmpeg source files are. I ran ldconfig so it can detect shared libs (This is how it works on the cloud) and finally ran make on my own codes directory and got the error mentioned.

    


    Here is my CMakeFile :

    


    cmake_minimum_required(VERSION 3.7)

project(Renderer C CXX)
set(CMAKE_CXX_STANDARD 14)

SET( EXECUTABLE_OUTPUT_PATH ${dir}/bin )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin )


add_definitions(-DGL_SILENCE_DEPRECATION)
add_definitions("-g -lglad -lGL -lGLU -lX11 -lvdpau -lz -lva -lavformat -lavcodec- -lswscale -lavutil -lavfiter -lswresample 
-lavdevice -lpostproc  -loa -lz -lx264 -llzma -lbz2 -lrt -lx264 -pthread -lm  -lva-drm -lva-x11")

list(APPEND SOURCES
    ...
)

find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)
find_library(AVCODEC_LIBRARY avcodec)

find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h)
find_library(AVFORMAT_LIBRARY avformat)

find_path(AVDEVICE_INCLUDE_DIR libavdevice/avdevice.h)
find_library(AVDEVICE_LIBRARY avdevice)

find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)
find_library(AVCODEC_LIBRARY avcodec)

find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h)
find_library(AVUTIL_LIBRARY avutil)

find_path(SWRESAMPLE_INCLUDE_DIR libswresample/swresample.h)
find_library(SWRESAMPLE_LIBRARY swresample)

find_path(SWSCALE_INCLUDE_DIR libswscale/swscale.h)
find_library(SWSCALE_LIBRARY swscale)

set(THREADS_PREFER_PTHREAD_FLAG ON)

add_executable(Renderer src/main.cpp src/Application.cpp src/Application.h ${SOURCES})

target_link_libraries(Renderer PRIVATE Threads::Threads)

list(APPEND EXTRA_LIBS
    "-lGL -lGLU -lX11 -lz -lva -lswresample -lx264 -shared -lvdpau -lva  -lm  -lva-drm -lva-x11"
)

target_include_directories(Renderer PRIVATE 
    ${AVFORMAT_INCLUDE_DIR} 
    ${AVCODEC_INCLUDE_DIR} 
    ${SWRESAMPLE_INCLUDE_DIR}
    ${SWSCALE_INCLUDE_DIR}
    ${AVUTIL_INCLUDE_DIR}
    ${AVDEVICE_INCLUDE_DIR} 
)

target_link_libraries(Renderer PRIVATE 
    ${AVFORMAT_LIBRARY} 
    ${AVCODEC_LIBRARY} 
    ${SWRESAMPLE_LIBRARY}
    ${SWSCALE_LIBRARY}
    ${AVUTIL_LIBRARY} 
    ${AVDEVICE_LIBRARY} 
)



    


    Like I said, it works on the cloud just the way it is and everything works without the --enable-libx264 flag.

    


    How can I fix this ? I'm on ubuntu 22+