frei0r | A large collection of free and portable video plugins | Video Utils library

 by   dyne C Version: v2.2.0 License: GPL-2.0

kandi X-RAY | frei0r Summary

kandi X-RAY | frei0r Summary

frei0r is a C library typically used in Video, Video Utils applications. frei0r has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has low support. You can download it from GitHub.

Frei0r is a minimalistic plugin API for video effects. The main emphasis is on simplicity for an API that will round up the most common video effects into simple filters, sources and mixers that can be controlled by parameters. It's our hope that this way these simple effects can be shared between many applications, avoiding their reimplementation by different projects.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              frei0r has a low active ecosystem.
              It has 307 star(s) with 87 fork(s). There are 22 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 15 open issues and 43 have been closed. On average issues are closed in 183 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of frei0r is v2.2.0

            kandi-Quality Quality

              frei0r has 0 bugs and 0 code smells.

            kandi-Security Security

              frei0r has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              frei0r code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              frei0r is licensed under the GPL-2.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              frei0r releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of frei0r
            Get all kandi verified functions for this library.

            frei0r Key Features

            No Key Features are available at this moment for frei0r.

            frei0r Examples and Code Snippets

            No Code Snippets are available at this moment for frei0r.

            Community Discussions

            QUESTION

            ffmpeg copy codec outputs in slowmotion
            Asked 2022-Apr-08 at 00:16

            i have the following scenario that is driving me crazy:

            i have a capture device. Here the ffprobe on it:

            ...

            ANSWER

            Answered 2022-Apr-08 at 00:16

            *.mjpeg is a raw stream format. FFmpeg documentation states of raw muxers: "They do not store timestamps or metadata." So, instead try storing the data in an mp4 container:

            Source https://stackoverflow.com/questions/71783986

            QUESTION

            FFMPEG Queue input backward in time
            Asked 2022-Apr-02 at 00:10

            I am trying to combine two audio files, and delaying the second one. Here's my command

            ...

            ANSWER

            Answered 2022-Apr-02 at 00:10

            The fundamental issue in these audio files appears to be the frequently dropped frames (each containing 960 audio samples). There is an instance of 8117 seconds gap between 2 successive frames in the first file. Because the MKA files were formed without filling these dropped frames, they are effectively variable-sampling-rate streams while labeled as constant-sampling-rate. This discrepancy makes your audios to appear shorter than they were recorded, explaining why your output is often much longer than expected and has been wrecking havoc on your attempt to work on these files.

            While atm I do not know if FFmpeg offers a mechanism to fix/estimate the dropped frames in these files, yYou can brute-force/ignore the dropped frames by:

            amix

            Source https://stackoverflow.com/questions/71708414

            QUESTION

            ffmpeg mjpeg -> h.265 smeared color on output video file
            Asked 2022-Mar-11 at 02:15

            I am converting some old mjpeg videos (stored in .avi container) to h.265 (.mp4 container) but am noticing the colors are smearing. Using the terminal command:

            ffmpeg -y -i "input-file.avi" -c:v libx265 -vtag hvc1 "output-file.mp4"

            I get the following image (notice how the red and blue are stretched donward). There is a lot of motion in the scene, but the motion is mostly horizontal:

            Any idea what might cause this? The detail and resolution seem fine, just the colors are being interpreted weirdly.

            Full output:

            ...

            ANSWER

            Answered 2022-Mar-10 at 18:58

            Your file seems to be missing some color information:

            Source https://stackoverflow.com/questions/71397605

            QUESTION

            ffmpeg - Lower volume of background music for dialog in a video
            Asked 2022-Mar-09 at 16:36

            I have a video with some background music in it.

            I wish to add a piece of spoken dialogue at a particular location in the video, such that the background music is lowered for the entire duration of the dialogue audio.

            I found a similar solution using sidechaincompress, which just works for mp3. I made some changes to it so that it includes the video too (-map 0:v). However, now the audio is cut short as soon as the dialogue ends.

            ...

            ANSWER

            Answered 2022-Mar-09 at 16:36

            Try this (the short clip inserted at 3-second mark):

            Source https://stackoverflow.com/questions/71383922

            QUESTION

            Upload large video to GCS use signed url but video is broken
            Asked 2022-Feb-13 at 07:16

            I have a application for Google App Engine(GAE), using Vue.js on the frontend and Flask on the backend. My app allows users to upload large video and will analyze it. But since GAE's upload size limit is 32MB, so I allow users to upload directly to Google Cloud Storage(GCS) using signed url.

            The problem I am facing is that the user can successfully upload the video to GCS, but on the backend(flask) when downloading the video for analysis, get the error below:

            ...

            ANSWER

            Answered 2022-Feb-13 at 07:16

            You are using formData with the HTTP PUT method which corrupts the upload as a binary data stream is expected and not MIME data.

            To use formdata:

            Upload an object with HTML forms

            Source https://stackoverflow.com/questions/71098490

            QUESTION

            FFmpeg - Converting AVI to MP4 (no audio in QuickTime player)
            Asked 2022-Feb-07 at 13:59

            I converted an avi file to a mp4 file with the following command, but the converted mp4 file produced no audio when played with QuickTime (no such problem with other players). I was able to convert mkv to mp4 with the same command without the audio problem.

            ...

            ANSWER

            Answered 2022-Feb-06 at 19:04

            From your log I can see that your input audio is MP3.

            Source https://stackoverflow.com/questions/70980007

            QUESTION

            ffmpeg error "output file #0 does not contain any stream" with FORFILES
            Asked 2022-Feb-03 at 22:07

            I'm trying to convert all the songs in a folder from flac to alac. All the files in the folder are flac.

            What I'm writing:

            ...

            ANSWER

            Answered 2022-Feb-03 at 22:07

            The forfiles command is a nasty beast, because there are several caveats:

            • it is slow (particularly because it cannot run internal commands of the hosting command prompt);
            • it handles wildcards differently than most other commands, hence /M *.* does not match all files but only such with an extension; to really match all files, use /M * or skip it since it is the default anyway;
            • it applies backslash-escaping, which is particularly annoying with paths ending in \, like the root directory of a drive /P "D:\", which causes a syntax error since the closing quotation mark is considered as escaped; to work around that, preferably append a . like /P "D:\.", or remove the quotation marks like /P D:\, though this exposes potential whitespaces or special characters to the parser;
            • all of the special @-variables that return the path and/or name of iterated items provide the values in quoted manner, which is particularly frustrating when it comes to concatenation;
            • it iterates over both files and directories that match the given mask; to distinguish between them you could use the special @isdir variable, but you will need an if statement for this (like if @isdir==FALSE or if @isdir==TRUE), which is an internal cmd.exe command, requiring its explicit instantiation even when you would not need it else;
            • handling of the command behind /C and its arguments is terribly implemented, leading to the problem that directly running external commands (so without cmd /C) may fail, unless you are aware of the mostly working fix by stating the command name twice (like /C "command.exe command.exe --parameter argument");
            • even its basically nice /D option (which is the only reason why forfiles might suit better than for) to filter for the relative last modification date (but not time) is badly implemented when a positive number (like /D +1) is used, because this uselessly points to the future;

            All of these issues lead me to the point that I suggest not to use forfiles and to use a standard for loop instead, like this (note also the changed mask *.flac):

            Source https://stackoverflow.com/questions/70781120

            QUESTION

            Inconsistent frame number with ffmpeg
            Asked 2022-Jan-16 at 00:46

            I'm having regularly issue with hvc1 videos getting an inconsistent number of frames between ffprobe info and FFmpeg info, and I would like to know what could be the reason for this issue and how if it's possible to solve it without re-encoding the video.

            I wrote the following sample script with a test video I have

            I split the video into 5-sec segments and I get ffprobe giving the expected video length but FFmpeg gave 3 frames less than expected on every segment but the first one.

            The issue is exactly the same if I split by 10 seconds or any split, I always lose 3 frames.

            I noted that the first segment is always 3 frames smaller (on ffprobe) than the other ones and it's the only consistent one.

            Here is an example script I wrote to test this issue :

            ...

            ANSWER

            Answered 2022-Jan-11 at 22:08

            The source of the differences is that FFprobe counts the discarded packets, and FFmpeg doesn't count the discarded packets as frames.

            Your results are consistent with video stream that is created with 3 B-Frames (3 consecutive B-Frames for every P-Frame or I-Frame).

            According to Wikipedia:

            I‑frames are the least compressible but don't require other video frames to decode.
            P‑frames can use data from previous frames to decompress and are more compressible than I‑frames.
            B‑frames can use both previous and forward frames for data reference to get the highest amount of data compression.

            When splitting a video with P-Frame and B-Frame into segments without re-encoding, the dependency chain breaks.

            • There are (almost) always frames that depends upon frames from the previous segment or the next segment.
            • The above frames are kept, but the matching packets are marked as "discarded" (marked with AV_PKT_FLAG_DISCARD flag).

            For the purpose of working on the same dataset, we my build synthetic video (to be used as input).

            Building synthetic video with the following command:

            Source https://stackoverflow.com/questions/70578206

            QUESTION

            Chrome MediaRecorder is randomly generating corrupted video files
            Asked 2021-Dec-23 at 13:17
            • Chrome: Version 96.0.4664.55 (Official Build) (x86_64)
            • System: Mac Catalina 10.15.5

            I am using this code to generate small stand alone videos from a MediaRecorder:

            ...

            ANSWER

            Answered 2021-Dec-09 at 09:48

            I moved the creation of the MediaRecorder instance to the recurrent function and now it is working properly:

            Source https://stackoverflow.com/questions/70214933

            QUESTION

            ffmpeg - script to extract 1st frame of each second with deinterlacing
            Asked 2021-Dec-22 at 04:45

            i'm trying to write a shell script to analyse some videos by using the first frame of each second of video as a basis. i'm using ffmpeg to extract the frames. i thought i'd hit gold when this thread came up in my searches, but it doesn't handle the deinterlacing.

            i'm using a time-based approach that works well for various formats as long as the video is progressive. it doesn't work so well for interlaced video (only the first field is output in that case, creating a half-height image). i've tried various combinations of deinterlacing (yadif/bwdif) with select but the filter chains i create either cause errors or still return a half-sized image.

            here is my call w/a filter that works correctly for progressive video source :
            ffmpeg -i $infile -vf "select='if(eq(n\,0),1,floor(t)-floor(prev_selected_t))" -vsync 0 $outfile

            the following still return only half-height images for interlaced source :
            ... -vf "bwdif=0,select='if(eq(n\,0),1,floor(t)-floor(prev_selected_t))'"

            ... -vf "bwdif=0,select='between(mod(n\,$ips)\,1\,2)'" -- $ips is images per second

            ... -vf "select='between(mod(n\,$ips)\,1\,2)',bwdif=0"

            i've also tried various permutations of the above w/explicit frame reference (-r, -vframes, ...), still no joy.

            can someone help me with the syntax ?

            --EDIT--
            here is the complete output of running the command with the first filter :

            ...

            ANSWER

            Answered 2021-Dec-22 at 04:45

            Your input is detected as interlaced but with half-height (288) and double the framerate (50). This may be due to missing or unrecognized boundary markers in the JPEG2000 packets. I assume this is meant to be PAL --> 720x576@25i.

            Try using the tinterlace filter first to interleave the input "frames" to double-height and half fps, and then continue the original sequence of filters.

            "tinterlace=mode=merge,bwdif=0,select='if(eq(n\,0),1,floor(t)-floor(prev_selected_t))'"

            Source https://stackoverflow.com/questions/70380430

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install frei0r

            Frei0r can be built on GNU/Linux, M$/Windows and Apple/OSX platforms, possibly in even more environments like embedded devices. For details see the INSTALL file.

            Support

            If you are new to frei0r (but not to programming) the best thing is probably to have a look at the frei0r header, which is quite simple and well documented. The doxyfied documentation is also available for browsing on-line.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/dyne/frei0r.git

          • CLI

            gh repo clone dyne/frei0r

          • sshUrl

            git@github.com:dyne/frei0r.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link