>

선택한 비디오에 빈티지 효과를 추가하려고합니다. 효과를 위해 빈티지 효과 gif 파일을 사용했으며 아래 방법을 사용하여 비디오에 오버레이로 성공적으로 추가했습니다.

ffmpeg.execute(new String[]{"-i",uri,"-ignore_loop", "1","-i",overlayUri ,"-filter_complex","[0:v]scale="+width+":"+height+"[v1];[1:v]scale="+width+":"+height+"[v2];[v1][v2]overlay",outputPath}, new ExecuteBinaryResponseHandler() {
                @Override
                public void onStart() {
                    Log.d("success", "process complete");
                }
                @Override
                public void onProgress(String message) {
                    Log.d("progress", message);
                }
                @Override
                public void onFailure(String message) {
                    Log.d("failure", message);
                }
                @Override
                public void onSuccess(String message) {
                    Log.d("success", "process complete");
                }
                @Override
                public void onFinish() {
                }
            });
            break;

그러나 오버레이가 투명하지 않기 때문에 오버레이 이미지 뒤의 비디오를 볼 수 없습니다. 그렇게하는 방법.


  • 답변 # 1

    이 명령을 시도해보십시오 :

    % ffmpeg -v warning -ss 45 -t 2 -i big_buck_bunny_1080p_h264.mov -vf scale=300:-1 -gifflags -transdiff -y bbb-notrans.gif
    % ffmpeg -v warning -ss 45 -t 2 -i big_buck_bunny_1080p_h264.mov -vf scale=300:-1 -gifflags +transdiff -y bbb-trans.gif
    % ls -l bbb-*.gif
    -rw-r--r-- 1 ux ux 1.1M Mar 15 22:50 bbb-notrans.gif
    -rw-r--r-- 1 ux ux 369K Mar 15 22:50 bbb-trans.gif
    
    

    참조 링크 :
    http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html

    이것이 도움이되기를 바랍니다.

  • 답변 # 2

    많은 시간을 낭비한 후에는 한 번 만든 GIF를 편집 할 수 없다는 것을 깨달았습니다. 따라서 한 비디오 위에 다른 비디오를 오버레이하고 오버레이 비디오에 투명성을 추가하기로 결정했습니다. 또한 현재 비디오의 크기와 일치하도록 오버레이 비디오의 크기를 조정해야했습니다. 다음 명령을 사용하여 달성했습니다

    String[] cmd = new String[]{"-i", uri,
                        "-i",overlayUri,"-filter_complex","[1:v][0:v]scale2ref[ua][b];[ua]setsar=1,format=yuva444p,colorchannelmixer=aa=0.5[u];[b][u]overlay", outputPath};
    
    

    여기에서uri는 내 원본 비디오이고overlayUri는 오버레이로 작동하는 비디오이며outPutPath는 파일이 저장되는 경로입니다.

    위의 명령이 실제로 어떻게 작동하는지 모르지만 많이 검색하고 몇 가지 다른 명령을 결합한 후 위 명령으로 작업했습니다.

  • 이전 amazon web services - Docker의 EXPOSE가 예상 샌드 박스를 위반하지 않습니까?
  • 다음 python - nltktreeTreedraw () 출력을 파일에 쓸 수 있습니까?