Create tape distortion effects with FFmpeg











up vote
0
down vote

favorite












I've been attempting to create video that looks like it's been distorted by a tape player. A specific example of the effect I'm after is the tape distortion effects in this video, but general tape distortion is the main thing.



I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? I'm just looking for video distortion, as I can do audio distortion just fine with my current tools.



Things I have attempted so far:




  • strange combinations of blend modes in Kdenlive

  • the chromashift filter in FFmpeg

  • converting the video to uncompressed YUV, messing with the file using Audacity, and then converting back to mp4 (this produced interesting results but not ones I was looking for)

  • separating the video into its component channels, messing with levels and position, and then recomposing it










share|improve this question
























  • "I cannot work out a way to do that" – please show what you've already tried and where you think this should be improved.
    – slhck
    Dec 4 at 11:17















up vote
0
down vote

favorite












I've been attempting to create video that looks like it's been distorted by a tape player. A specific example of the effect I'm after is the tape distortion effects in this video, but general tape distortion is the main thing.



I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? I'm just looking for video distortion, as I can do audio distortion just fine with my current tools.



Things I have attempted so far:




  • strange combinations of blend modes in Kdenlive

  • the chromashift filter in FFmpeg

  • converting the video to uncompressed YUV, messing with the file using Audacity, and then converting back to mp4 (this produced interesting results but not ones I was looking for)

  • separating the video into its component channels, messing with levels and position, and then recomposing it










share|improve this question
























  • "I cannot work out a way to do that" – please show what you've already tried and where you think this should be improved.
    – slhck
    Dec 4 at 11:17













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I've been attempting to create video that looks like it's been distorted by a tape player. A specific example of the effect I'm after is the tape distortion effects in this video, but general tape distortion is the main thing.



I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? I'm just looking for video distortion, as I can do audio distortion just fine with my current tools.



Things I have attempted so far:




  • strange combinations of blend modes in Kdenlive

  • the chromashift filter in FFmpeg

  • converting the video to uncompressed YUV, messing with the file using Audacity, and then converting back to mp4 (this produced interesting results but not ones I was looking for)

  • separating the video into its component channels, messing with levels and position, and then recomposing it










share|improve this question















I've been attempting to create video that looks like it's been distorted by a tape player. A specific example of the effect I'm after is the tape distortion effects in this video, but general tape distortion is the main thing.



I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? I'm just looking for video distortion, as I can do audio distortion just fine with my current tools.



Things I have attempted so far:




  • strange combinations of blend modes in Kdenlive

  • the chromashift filter in FFmpeg

  • converting the video to uncompressed YUV, messing with the file using Audacity, and then converting back to mp4 (this produced interesting results but not ones I was looking for)

  • separating the video into its component channels, messing with levels and position, and then recomposing it







linux video ffmpeg






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 5 at 4:44

























asked Dec 4 at 9:46









Tamara Macadam

11




11












  • "I cannot work out a way to do that" – please show what you've already tried and where you think this should be improved.
    – slhck
    Dec 4 at 11:17


















  • "I cannot work out a way to do that" – please show what you've already tried and where you think this should be improved.
    – slhck
    Dec 4 at 11:17
















"I cannot work out a way to do that" – please show what you've already tried and where you think this should be improved.
– slhck
Dec 4 at 11:17




"I cannot work out a way to do that" – please show what you've already tried and where you think this should be improved.
– slhck
Dec 4 at 11:17










2 Answers
2






active

oldest

votes

















up vote
1
down vote













The most prominent effect I see is an embossing effect.



That can be carried out using ffmpeg's convolution filter as follows:



ffmpeg -i in -vf convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2" -c:a copy out


I've taken the coefficients straight from the docs at https://ffmpeg.org/ffmpeg-filters.html#convolution






share|improve this answer




























    up vote
    -3
    down vote













    You might be looking for the
    frei0r plugin of FFmpeg.



    An example for adding the frei0r parameter is -vf frei0r=pixeliz0r?....



    If you wish to examine the various effects in action, demonstrations
    can be found in the blog article
    Experiments with FFmpeg Filters and Frei0r Plugin Effects.






    share|improve this answer

















    • 1




      -1. The OP says I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? Then your answer points to the already known tool, gives a generic example and a link. What? Even if any solution to the specific problem is in the linked article, the answer is link-only at best.
      – Kamil Maciorowski
      Dec 4 at 10:26












    • @KamilMaciorowski: "I cannot work out a way to do" is not very informative, so I wish this answer to start a dialog about what is he doing that is different from the documentation or from the article, although the information in both links should be enough. I can't write here a blog with *everything".
      – harrymc
      Dec 4 at 10:51






    • 1




      Answers are not meant for starting dialogues. If the question is not sufficiently clear, it should be improved first.
      – slhck
      Dec 4 at 11:16






    • 1




      OK, I can see your point. If the OP states this generic answer is what they want then I will revoke my downvote. If the question is improved and it demands a specific answer, and your answer is edited to address this, then I will revoke my downvote (and possibly vote up, this scenario would be the best). Please leave me a comment when these conditions apply so I can fulfill my promise.
      – Kamil Maciorowski
      Dec 4 at 11:25











    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1380642%2fcreate-tape-distortion-effects-with-ffmpeg%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote













    The most prominent effect I see is an embossing effect.



    That can be carried out using ffmpeg's convolution filter as follows:



    ffmpeg -i in -vf convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2" -c:a copy out


    I've taken the coefficients straight from the docs at https://ffmpeg.org/ffmpeg-filters.html#convolution






    share|improve this answer

























      up vote
      1
      down vote













      The most prominent effect I see is an embossing effect.



      That can be carried out using ffmpeg's convolution filter as follows:



      ffmpeg -i in -vf convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2" -c:a copy out


      I've taken the coefficients straight from the docs at https://ffmpeg.org/ffmpeg-filters.html#convolution






      share|improve this answer























        up vote
        1
        down vote










        up vote
        1
        down vote









        The most prominent effect I see is an embossing effect.



        That can be carried out using ffmpeg's convolution filter as follows:



        ffmpeg -i in -vf convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2" -c:a copy out


        I've taken the coefficients straight from the docs at https://ffmpeg.org/ffmpeg-filters.html#convolution






        share|improve this answer












        The most prominent effect I see is an embossing effect.



        That can be carried out using ffmpeg's convolution filter as follows:



        ffmpeg -i in -vf convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2" -c:a copy out


        I've taken the coefficients straight from the docs at https://ffmpeg.org/ffmpeg-filters.html#convolution







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Dec 4 at 14:05









        Gyan

        14.3k21643




        14.3k21643
























            up vote
            -3
            down vote













            You might be looking for the
            frei0r plugin of FFmpeg.



            An example for adding the frei0r parameter is -vf frei0r=pixeliz0r?....



            If you wish to examine the various effects in action, demonstrations
            can be found in the blog article
            Experiments with FFmpeg Filters and Frei0r Plugin Effects.






            share|improve this answer

















            • 1




              -1. The OP says I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? Then your answer points to the already known tool, gives a generic example and a link. What? Even if any solution to the specific problem is in the linked article, the answer is link-only at best.
              – Kamil Maciorowski
              Dec 4 at 10:26












            • @KamilMaciorowski: "I cannot work out a way to do" is not very informative, so I wish this answer to start a dialog about what is he doing that is different from the documentation or from the article, although the information in both links should be enough. I can't write here a blog with *everything".
              – harrymc
              Dec 4 at 10:51






            • 1




              Answers are not meant for starting dialogues. If the question is not sufficiently clear, it should be improved first.
              – slhck
              Dec 4 at 11:16






            • 1




              OK, I can see your point. If the OP states this generic answer is what they want then I will revoke my downvote. If the question is improved and it demands a specific answer, and your answer is edited to address this, then I will revoke my downvote (and possibly vote up, this scenario would be the best). Please leave me a comment when these conditions apply so I can fulfill my promise.
              – Kamil Maciorowski
              Dec 4 at 11:25















            up vote
            -3
            down vote













            You might be looking for the
            frei0r plugin of FFmpeg.



            An example for adding the frei0r parameter is -vf frei0r=pixeliz0r?....



            If you wish to examine the various effects in action, demonstrations
            can be found in the blog article
            Experiments with FFmpeg Filters and Frei0r Plugin Effects.






            share|improve this answer

















            • 1




              -1. The OP says I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? Then your answer points to the already known tool, gives a generic example and a link. What? Even if any solution to the specific problem is in the linked article, the answer is link-only at best.
              – Kamil Maciorowski
              Dec 4 at 10:26












            • @KamilMaciorowski: "I cannot work out a way to do" is not very informative, so I wish this answer to start a dialog about what is he doing that is different from the documentation or from the article, although the information in both links should be enough. I can't write here a blog with *everything".
              – harrymc
              Dec 4 at 10:51






            • 1




              Answers are not meant for starting dialogues. If the question is not sufficiently clear, it should be improved first.
              – slhck
              Dec 4 at 11:16






            • 1




              OK, I can see your point. If the OP states this generic answer is what they want then I will revoke my downvote. If the question is improved and it demands a specific answer, and your answer is edited to address this, then I will revoke my downvote (and possibly vote up, this scenario would be the best). Please leave me a comment when these conditions apply so I can fulfill my promise.
              – Kamil Maciorowski
              Dec 4 at 11:25













            up vote
            -3
            down vote










            up vote
            -3
            down vote









            You might be looking for the
            frei0r plugin of FFmpeg.



            An example for adding the frei0r parameter is -vf frei0r=pixeliz0r?....



            If you wish to examine the various effects in action, demonstrations
            can be found in the blog article
            Experiments with FFmpeg Filters and Frei0r Plugin Effects.






            share|improve this answer












            You might be looking for the
            frei0r plugin of FFmpeg.



            An example for adding the frei0r parameter is -vf frei0r=pixeliz0r?....



            If you wish to examine the various effects in action, demonstrations
            can be found in the blog article
            Experiments with FFmpeg Filters and Frei0r Plugin Effects.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Dec 4 at 10:12









            harrymc

            251k11259558




            251k11259558








            • 1




              -1. The OP says I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? Then your answer points to the already known tool, gives a generic example and a link. What? Even if any solution to the specific problem is in the linked article, the answer is link-only at best.
              – Kamil Maciorowski
              Dec 4 at 10:26












            • @KamilMaciorowski: "I cannot work out a way to do" is not very informative, so I wish this answer to start a dialog about what is he doing that is different from the documentation or from the article, although the information in both links should be enough. I can't write here a blog with *everything".
              – harrymc
              Dec 4 at 10:51






            • 1




              Answers are not meant for starting dialogues. If the question is not sufficiently clear, it should be improved first.
              – slhck
              Dec 4 at 11:16






            • 1




              OK, I can see your point. If the OP states this generic answer is what they want then I will revoke my downvote. If the question is improved and it demands a specific answer, and your answer is edited to address this, then I will revoke my downvote (and possibly vote up, this scenario would be the best). Please leave me a comment when these conditions apply so I can fulfill my promise.
              – Kamil Maciorowski
              Dec 4 at 11:25














            • 1




              -1. The OP says I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? Then your answer points to the already known tool, gives a generic example and a link. What? Even if any solution to the specific problem is in the linked article, the answer is link-only at best.
              – Kamil Maciorowski
              Dec 4 at 10:26












            • @KamilMaciorowski: "I cannot work out a way to do" is not very informative, so I wish this answer to start a dialog about what is he doing that is different from the documentation or from the article, although the information in both links should be enough. I can't write here a blog with *everything".
              – harrymc
              Dec 4 at 10:51






            • 1




              Answers are not meant for starting dialogues. If the question is not sufficiently clear, it should be improved first.
              – slhck
              Dec 4 at 11:16






            • 1




              OK, I can see your point. If the OP states this generic answer is what they want then I will revoke my downvote. If the question is improved and it demands a specific answer, and your answer is edited to address this, then I will revoke my downvote (and possibly vote up, this scenario would be the best). Please leave me a comment when these conditions apply so I can fulfill my promise.
              – Kamil Maciorowski
              Dec 4 at 11:25








            1




            1




            -1. The OP says I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? Then your answer points to the already known tool, gives a generic example and a link. What? Even if any solution to the specific problem is in the linked article, the answer is link-only at best.
            – Kamil Maciorowski
            Dec 4 at 10:26






            -1. The OP says I cannot work out a way to do that with just FFmpeg (and potentially frei0r filters) though. Is there a way to do that, or am I stuck? Then your answer points to the already known tool, gives a generic example and a link. What? Even if any solution to the specific problem is in the linked article, the answer is link-only at best.
            – Kamil Maciorowski
            Dec 4 at 10:26














            @KamilMaciorowski: "I cannot work out a way to do" is not very informative, so I wish this answer to start a dialog about what is he doing that is different from the documentation or from the article, although the information in both links should be enough. I can't write here a blog with *everything".
            – harrymc
            Dec 4 at 10:51




            @KamilMaciorowski: "I cannot work out a way to do" is not very informative, so I wish this answer to start a dialog about what is he doing that is different from the documentation or from the article, although the information in both links should be enough. I can't write here a blog with *everything".
            – harrymc
            Dec 4 at 10:51




            1




            1




            Answers are not meant for starting dialogues. If the question is not sufficiently clear, it should be improved first.
            – slhck
            Dec 4 at 11:16




            Answers are not meant for starting dialogues. If the question is not sufficiently clear, it should be improved first.
            – slhck
            Dec 4 at 11:16




            1




            1




            OK, I can see your point. If the OP states this generic answer is what they want then I will revoke my downvote. If the question is improved and it demands a specific answer, and your answer is edited to address this, then I will revoke my downvote (and possibly vote up, this scenario would be the best). Please leave me a comment when these conditions apply so I can fulfill my promise.
            – Kamil Maciorowski
            Dec 4 at 11:25




            OK, I can see your point. If the OP states this generic answer is what they want then I will revoke my downvote. If the question is improved and it demands a specific answer, and your answer is edited to address this, then I will revoke my downvote (and possibly vote up, this scenario would be the best). Please leave me a comment when these conditions apply so I can fulfill my promise.
            – Kamil Maciorowski
            Dec 4 at 11:25


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Super User!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1380642%2fcreate-tape-distortion-effects-with-ffmpeg%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Mouse cursor on multiple screens with different PPI

            Agildo Ribeiro

            Sometime when accessing a menu: “Ubuntu 16.04 has experienced an internal error”