We're looking to enhance a video using Ffmpeg by implementing several effects sequentially. First, we aim to apply a blur effect to the entire video. Then, we want to overlay a logo and a waveform onto the blurred video. Finally, we need to add a border around the entire composition. This step-by-step process requires precise commands and careful consideration of parameters to achieve the desired result effectively. I utilized Ffmpeg commands to sequentially apply blur, overlay the logo and waveform, and add a border to the video. I expected each effect to be applied in the specified order, resulting in a visually enhanced video with all desired elements. However, I encountered challenges in properly configuring the parameters for each effect, leading to unexpected results such as misaligned overlays or improper blur intensity.

@echo off
setlocal enabledelayedexpansion

rem Set paths and directories
set "ffmpeg_path=C:\ffmpeg\bin\ffmpeg.exe"
set "input_dir=_input"
set "output_dir=_output"

rem Ensure input and output directories exist
if not exist "%input_dir%" (
    echo Error: Input directory "%input_dir%" not found.
    exit /b 1

if not exist "%output_dir%" (
    mkdir "%output_dir%"

rem Loop through input directory
for %%t in ("%input_dir%\*.*") DO (

    rem Process each file with ffmpeg
    "%ffmpeg_path%" -y -i "%%t" -i logo.png -filter_complex "\
        [0:v]eq=brightness=0.2:saturation=2.0:contrast=1.2, crop=iw/1.2:ih/1.2, \
        boxblur=1:2 [blurred_bg]; \
        [blurred_bg][1:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h-10)[bg_with_logo]; \
        [0:a]showwaves=s=1080x100:mode=line:colors=white [waveform]; \
        [bg_with_logo][waveform]overlay=10:H-h-10, \
        format=yuv420p[v]; \
        [v]pad=iw+20:ih+20:x=10:y=10:color=white[final_output]" \
        -map "[final_output]" -map 0:a -c:v h264 -c:a aac -b:a 128k -ar 44100 "%output_dir%\temp.mp4"

    rem Check if output file exists
    if exist "%output_dir%\temp.mp4" (
        rem Calculate new MD5 hash
        certutil -hashfile "%output_dir%\temp.mp4" MD5 > "%output_dir%\temp_md5.txt"

        rem Remove ID3 tag metadata
        "%ffmpeg_path%" -i "%output_dir%\temp.mp4" -map_metadata -1 -c:v copy -c:a copy "%output_dir%\%%~nt.mp4"

        rem Clean up temporary files
        del "%output_dir%\temp.mp4"
        del "%output_dir%\temp_md5.txt"
    ) else (
        echo Error: Failed to create output file for "%%~nt"



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.