Recherche avancée

Médias (91)

Autres articles (50)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

Sur d’autres sites (5668)

  • How to configure ffmpeg buildpack with nodes.js & subdirectory buildpacks in a heroku project ?

    17 novembre 2022, par Jim

    In a node.js app hosted on heroku, ffmpeg is used by spawning processes, but is throwing errors anytime an ffmpeg command runs

    


    the error ffmpeg: command not found is thrown both in cli test heroku run ffmpeg as well as production logs

    


    Ive considered :

    


      

    • buildpack order
    • 


    • buildpack clearing/re-adding/redeploying
    • 


    • buildpack required env vars
    • 


    • heroku-stack-20 conflicts with buildpack#1 somehow ?
    • 


    


    Buildpack order :

    


      

    1. https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git
    2. 


    3. https://github.com/heroku/heroku-buildpack-awscli.git
    4. 


    5. https://github.com/timanovsky/subdir-heroku-buildpack.git
    6. 


    7. heroku/nodejs
    8. 


    


    Buildpack configs - from watching build logs, even though i havent set ffmpeg path, a default is found.

    


    beginning build logs (completes successfully, runs successfully - minus ffmpeg) :

    


    -----> Building on the Heroku-20 stack
-----> Using buildpacks:
       1. https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git
       2. https://github.com/xrisk/heroku-opus.git
       3. https://github.com/heroku/heroku-buildpack-awscli.git
       4. https://github.com/timanovsky/subdir-heroku-buildpack.git
       5. heroku/nodejs
-----> ffmpeg app detected
-----> Installing ffmpeg
       Variable FFMPEG_DOWNLOAD_URL isn't set, using default value
       Downloading https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
       Unpacking the archive
       Installation successful
-----> heroku-opus app detected
       exporting PATH and LIBRARY_PATH
-----> Building in /tmp/build_51b5ac83/opus
-----> Starting opus compilation
       Downloading opus-1.3.1.tar.gz
       Unpacking opus
       Running configure
       Running make install
-----> AWS CLI app detected
-----> Downloading AWS CLI
-----> Installing AWS CLI
       You can now run: /app/.awscli/bin/aws --version
       aws-cli/2.8.12 Python/3.9.11 Linux/4.4.0-1104-aws exe/x86_64.ubuntu.20 prompt/off
-----> Successfully installed AWS CLI
-----> Subdir buildpack app detected
-----> Subdir buildpack in server
       creating cache: /tmp/codon/tmp/cache
       created tmp dir: /tmp/codon/tmp/cache/subdirBuBFb
       moving working dir: server to /tmp/codon/tmp/cache/subdirBuBFb
       cleaning build dir /tmp/build_51b5ac83
       copying preserved work dir from cache /tmp/codon/tmp/cache/subdirBuBFb to build dir /tmp/build_51b5ac83
       cleaning tmp dir /tmp/codon/tmp/cache/subdirBuBFb
-----> Node.js app detected


    


    Any suggestions to further debug this ?

    


    EDIT :

    


      

    • Ive determined a new order that at least allows heroku run ffmpeg to return successfully
    • 


    • that new order essentially requires the subdirectory buildpack to be invoked before the ffmpeg buildpack, and those two items have to be ordered before the heroku/nodejs buildpack
    • 


    • BUT : when an ffmpeg command is run through spawning a process in-app, a slightly different error is thrown /bin/sh: 1: ffmpeg: not found
    • 


    • running cli command heroku run which ffmpeg returns /app/vendor/ffmpeg/ffmpeg
    • 


    


  • constructing an ffmpeg script for use in Xcode/swift project

    21 octobre 2019, par NCrusher

    I’m going back to the drawing board with this post because I’ve been through so much trial and error over the last day with this issue that the information I posted earlier is no longer relevant.

    I’ve only been learning both Swift and FFmpeg for a few weeks, and I’ve just exhausted my ability to troubleshoot this.

    I’m maybe 90% certain this is a problem with my ffmpeg script, rather than with the Swift component. But I think it’s complicated by what characters need special formatting in Swift (particularly mathematical operatives.)

    I started off using a method in Xcode modeled after this post, which Xcode actually managed to guide me through updating for current versions of swift without breaking. Which left me with this :

    func ffmpegConvert(inputPath: String, filters: String, outputPath: String) {
       guard let launchPath = Bundle.main.path(forResource: "ffmpeg", ofType: "") else { return }
       do {
           let convertTask: Process = Process()
           convertTask.launchPath = launchPath
           convertTask.arguments = [
               "-i", inputPath,
               filters,
               outputPath
           ]
           convertTask.standardInput = FileHandle.nullDevice
           convertTask.launch()
           convertTask.waitUntilExit()
       }
    }

    I call this function when I click the "Start Conversion" button on my app. Like I said, that part seems to work fine. The problem is either in the way ffmpeg is being called by the app, or with the construction of the strings in my arguments array.

    The inputFilePath and outputFilePath strings are self-explanatory. Both of them are perfectly acceptably formatted filepath strings.

    The filters is a little tougher. My app has five conversion options and a different filter set for each one. One is as simple as -c copy and the most complex is -c:a libmp3lame -ac 1 -ar 22050 -q:a 9 (I’m working with audiobooks so I don’t need a lot of complexity in my arguments.

    The app appears to be launching ffmpeg perfectly. But the console keeps giving me errors. And the errors keep changing depending on what I try. Here’s what I’ve been through so far :

    var inputFilePath = "/Volumes/CSW External/ffmpeg/diamonds.aac"
    var ffmpegFilters = "-c copy"
    var outputFilePath = "/Volumes/CSW External/ffmpeg/diamonds.m4b"

    Result :

    Unrecognized option ’c copy’.
    Error splitting the argument list : Option not found

    Next attempt, I tried var ffmpegFilters = "--c copy". Result was the same error.

    Then I tried var ffmpegFilters = " -c copy" and it actually read the metadata from my file before throwing a different error at me :

    Unable to find a suitable output format for ’ -c copy’ -c copy :
    Invalid argument

    I’m assuming that the fact that it read the metadata before throwing a different error at me means I made...some form of progress ?

    I spent a few hours researching that particular error and why people might be getting it and couldn’t find a situation that was analogous to what I was trying to do. Mostly people were encountering it from the command line and/or other operating systems. So no help there.

    At that point, since I was just throwing things at the wall to see what might stick, I decided to throw the whole command, inputPath / ffMpegFilters / outputPath into a single string to see if I could make that work (under the logic that if it did, I could narrow the cause of my trouble down to the way the separate strings are being constructed by XCode.)

    I tried it both with the whitespace in the filepath and with the whitespace escaped out (using double \ as required by Swift.) The ffmpeg log came displayed a perfectly valid

    Doing so took me back to the first error I got :

    Unrecognized option ’-c copy’.
    Error splitting the argument list : Option not found

    So then I started researching THAT error. Some of the discussions I came across indicated that the problem was that the arguments couldn’t all be in a single string, they needed to be split up and put in an array. Which I could see for a longer argument, but -c copy shouldn’t need that.

    But I decided to give it a go. Formerly my method for constructing the string of arguments would have looked like this

    func conversionSelection() {
       if inputFileUrl != nil {
           let conversionChoice = conversionOptionsPopup.indexOfSelectedItem
           switch conversionChoice {
               case 1 :
                   outputExtension = ".mp3"
                   ffmpegFilters = "-c:a libmp3lame -ac 1 -ar 22050 -q:a 9"
               (...case 2, 3, 4, default, etc)
           }
       }
    }

    Now it looks more like this :

    func conversionSelection() {
       if inputFileUrl != nil {
           let conversionChoice = conversionOptionsPopup.indexOfSelectedItem
           switch conversionChoice {
               case 1 :
                   outputExtension = ".mp3"
                   ffmpegCodec = "-c:a libmp3lame"
                   ffmpegChannels = "-ac 1"
                   ffmpegSampling = "-ar 22050"
                   ffmpegBitrate = "-q:a 9"
               (case 2, case 3, case 4, default, etc)
           }
       }
    }

    Unfortunately, this just brought me full circle. If I try to use -c:a libmp3lame or --c:a libmp3lame I get the Error splitting the argument list: Option not found error. Interestingly, however, it gives the argument with relation to the ffmpegSampling argument, which is a slight difference.

    If I put a whitespace in front of it -c:a libmp3lame it will get far enough into the process to read the input file metadata, then I get this :

    Unable to find a suitable output format for ’ -c:a libmp3lame’ -c:a
    libmp3lame : Invalid argument

    I’m stumped. I thought this was going to be an easy fix, but I’ve been at it almost a full day with all the trial and error, and nothing is working, and I’ve exhausted my newbie understanding of both Swift and ffmpeg.

  • I'm building a rust project,but it keep saying "could not find native static library 'avfornat' perhaps an —L flag is missing ?"

    8 juillet 2023, par Carrot

    I already installed the FFmpeg and ask ChatGPT for many times,but whatever I do,It just keep goes wrongerror

    


    ffmpeg

    


    I already changed my work environment form windows to ubuntu and try to add the path of libavformat.a in every cargo.toml files