Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Opublikuj swoje zlecenie za darmo i otrzymaj oferty od wykonawców freelancerów już minutę po opublikowaniu!

Automatyzacja z FFMPEG

Translated2542 PLN

  1. 21933
     20  0

    10 dni2542 PLN

    Witaj! Jestem gotowa wykonać zadanie automatyzacji za pomocą FFmpeg: generowanie filmu z napisami, efektami, maskami, znakiem wodnym, a także syntezę mowy z tekstu przez API (np. ElevenLabs lub Google TTS). Stworzę formularz do przesyłania dużych tekstów (do 100 000 znaków) z późniejszą obróbką i montażem filmu. Szacowany czas realizacji — do 14 dni. Wszystko będzie zautomatyzowane i przetestowane. Szczegóły chętnie omówię w wiadomościach prywatnych.

  2. 232  
    3 dni2542 PLN

    Dobry wieczór, od 10 miesięcy rozwijam bardzo podobny program. Wszystkie funkcje są dostępne, wystarczy wybrać to, czego potrzebujesz.

  3. 99  
    5 dni2542 PLN

    Twój projekt generowania wideo wygląda interesująco. Mogę stworzyć skrypt do napisów, efektów, masek i znaków wodnych, a także syntezę głosu przez API i integrację z ChatGPT. Mam doświadczenie w podobnych zadaniach, na przykład na platformach AI i wielojęzycznych asystentach, więc wiem, jak obsługiwać duże teksty. Omówmy szczegóły.

    Moje wcześniejsze prace:
    https://elysianai.com/
    https://storyai.cc/

  4.    1  2   3
    5 dni2542 PLN

    Witam! Rozumiem Twoje zadanie: potrzebny jest skrypt, który będzie mógł automatycznie generować wideo z nałożonymi napisami, efektami, maskami i znakami wodnymi, a także z dubbingiem za pomocą API ChatGPT. Proponuję zrealizować to za pomocą połączenia Python + FFMPEG + zewnętrznej integracji tekst-na-mowę do generowania dźwięku. Formularz do przesyłania dużych tekstów można zrobić za pomocą Flask lub FastAPI z obsługą dużych danych. Mam już opracowania, jestem gotów szybko rozpocząć i dostosować działający system do Twoich wymagań.

  5. 260    1  1
    2 dni2542 PLN

    wszystko będzie maksymalnie szybko, będzie gotowe dzisiaj, ale ja proponuję lepiej niż skrypt, napisz do mnie na priv, opowiem więcej.

  6. 1660    100  5   3
    10 dni2563 PLN

    Dzień dobry! Ciekawy projekt. Piszcie, z chęcią będę współpracować z Wami!

  7. 4189    123  0
    14 dni2538 PLN

    Mogę stworzyć taki skrypt. Użyję Pythona + ffmpeg.
    do API generowania głosu openai

  8. 120  
    2 dni2546 PLN

    Jestem gotowy do realizacji Twojego projektu. Wiem, jak pracować z GraphicsMagik i FFMPEG. Znam skrypty bash.

  9. Jeszcze 2 ofert jest ukrytych
  • Yakob Ingers
    12 maja 2025, 20:47 |

    Sample (without API of ChatGPT (pay for)).



    #!/bin/ksh

    ############################################
    input_video="input.mp4"
    output_video="output_with_k.mp4"
    watermark_text="КR"
    font_size=100
    font_color="white"
    font_file="Arial"
    watermark_x=50
    watermark_y=50
    audio_description_prompt="dsgddfgdfdgfg bbbdfbd"
    generated_audio_file="generated_audio.mp3"

    #0
    watermark_image="watermark_k.png"
    echo "Generating with letter K '$watermark_text'..."
    gm convert -background none -fill "$font_color" -font "$font_file" -pointsize "$font_size" label:"$watermark_text" "$watermark_image"
    if [ $? -ne 0 ]; then
      echo "Error genereating watermark"
      exit 1
    fi
    echo "Image for watermark  '$watermark_image' created"

    #1
    echo "adding to video '$input_video'..."
    ffmpeg -i "$input_video" -i "$watermark_image" -filter_complex "overlay=x=$watermark_x:y=$watermark_y" -c:a copy "video_with_watermark.mp4"
    if [ $? -ne 0 ]; then
      echo "error"
      rm -f "$watermark_image"
      exit 1
    fi
    echo "1th step of video: video_with_watermark.mp4"



  • Yakob Ingers
    12 maja 2025, 23:17 |

    The sample of my new script: 

    ./finale.ksh  -size 122  -i input.mp4 -label sdfds  -shadow -x 250 -y 250 -font Helvetica -wave -color white
    The result:



    This is a shell script (.ksh) designed to add a text watermark to a video file. It utilizes two command-line tools:

    1. GraphicsMagick (gm convert, gm composite): Used to generate the watermark image with optional shadow and wave effects.
    2. FFmpeg (ffmpeg): Used to overlay the generated watermark image onto the input video.

    Key functionalities:

    • Takes input video and watermark text as mandatory arguments.
    • Offers several optional parameters:
      • -font: Specifies the font for the text watermark.
      • -color: Sets the color of the text.
      • -size: Controls the size of the text.
      • -shadow: Enables a shadow effect behind the text.
      • -wave: Applies a wave distortion effect to the text.
      • -x and -y: Define the position of the watermark on the video.
    • Lists available fonts using the --help fonts option.
    • Generates a PNG image of the text watermark (with shadow and wave if enabled) using GraphicsMagick.
    • Overlays the generated PNG image onto the input video using FFmpeg.
    • Outputs the watermarked video to a file named output_with_wm.mp4.
    • Handles errors such as missing mandatory arguments or failures in image generation or video processing.
    • Cleans up by removing the temporary watermark image file after processing.

    In essence, the script automates the process of creating a text-based watermark with optional visual enhancements and embedding it into a video file.


    #!/bin/ksh


    # --- Default parameters ---

    input_video=""
    watermark_text=""
    selected_font="Arial"
    text_color="white"
    text_size=50
    enable_shadow=0
    enable_wave=0
    watermark_x=10
    watermark_y=10


    # --- Function to list available fonts ---
    list_fonts() {
      echo "Avaiable Fonts:"
      fc-list | awk -F: '{print $1}' | sort -u
    }


    # --- Argument processing ---
    while [ $# -gt 0 ]; do
      case "$1" in
        -i)
          if [ $# -gt 1 ]; then
            input_video="$2"
            shift 2
          else
            echo "Error: Expected filename after -i."
            exit 1
          fi
          ;;
        -label)
          if [ $# -gt 1 ]; then
            watermark_text="$2"
            shift 2
          else
            echo "Error: Expected text after -label."
            exit 1
          fi
          ;;
        -font)
          if [ $# -gt 1 ]; then
            selected_font="$2"
            shift 2
          else
            echo "Error: Expected font name after -font."
            exit 1
          fi
          ;;
        -color)
          if [ $# -gt 1 ]; then
            text_color="$2"

            shift 2

          else

            echo "Error: Expected color after -color."

            exit 1

          fi

          ;;

        -size)

          if [ $# -gt 1 ]; then

            text_size="$2"

            shift 2

          else

            echo "Error: Expected size after -size."

            exit 1

          fi

          ;;

        -shadow)

          enable_shadow=1

          shift

          ;;

        -wave)

          enable_wave=1

          shift

          ;;

        -x)

          if [ $# -gt 1 ]; then

            watermark_x="$2"

            shift 2

          else

            echo "Error: Expected value after -x."

            exit 1

          fi

          ;;

        -y)

          if [ $# -gt 1 ]; then

            watermark_y="$2"

            shift 2

          else

            echo "Error: Expected value after -y."

            exit 1
          fi
          ;;

        --help)
          case "$2" in
            fonts)
              list_fonts
              exit 0
              ;;

            *)

              echo "Usage: $0 -i <input_video> -label \"text\" [options]"
              echo "Options: -font <font_name>, -color <color>, -size <size>, -shadow, -wave, -x <number>, -y <number>"
              echo "           $0 --help fonts"
              exit 0

              ;;
          esac
          exit 0
          ;;

        *)

          echo "Unknown parameter: '$1'"
          echo "Usage: $0 -i <input_video> -label \"text\" [options]"
          echo "           $0 --help fonts"
          exit 1
          ;;
      esac

    done


    # --- Check for mandatory parameters ---

    if [ -z "$input_video" ] || [ -z "$watermark_text" ]; then
      echo "Error: You must specify -i <input_video> and -label \"text\"."
      echo "Usage: $0 -i <input_video> -label \"text\" [options]"
      echo "           $0 --help fonts"
      exit 1
    fi


    # --- GraphicsMagick settings ---

    watermark_text_safe=$(echo "$watermark_text" | sed 's/ /_/g')
    watermark_image="watermark_${watermark_text_safe}_${selected_font}_${text_color}_${text_size}.png"
    font_file="$selected_font"
    shadow_color="#00000080" # Semi-transparent black

    shadow_offset="+2+2"
    wave_amplitude=5
    wave_length=20
    watermark_x_offset=0
    watermark_y_offset=0

    output_video="output_with_wm.mp4"

    echo "Input video file: $input_video"
    echo "Watermark text: $watermark_text"
    echo "Font: $selected_font"
    echo "Text color: $text_color"
    echo "Text size: $text_size"
    echo "Position (x, y): ($watermark_x, $watermark_y)"

    if [ $enable_shadow -eq 1 ]; then
      echo "Shadow enabled."
    fi

    if [ $enable_wave -eq 1 ]; then
      gm convert "$watermark_image" -bordercolor none -border 10x10 -wave "$wave_amplitude"x"$wave_length" -trim "$watermark_image"
      echo "Wave effect enabled."
    fi

    # --- 1. Generating the image with text and effects using GraphicsMagick ---
    echo "Generating image with text '$watermark_text' in font '$selected_font', color '$text_color', size '$text_size'..."

    text_image="text_$watermark_image"
    shadow_image="shadow_$watermark_image"
    final_image="$watermark_image"

    # Create image with main text
    gm convert -background none -font "$font_file" -pointsize "$text_size" -fill "$text_color" label:"$watermark_text" "$text_image"

    # Create shadow image (offset text)
    if [ $enable_shadow -eq 1 ]; then
      gm convert -background none -font "$font_file" -pointsize "$text_size" -fill "#00000080" label:"$watermark_text" -bordercolor none -border 5x5 "$shadow_image"

      gm composite -geometry "+12+12" "$text_image" "$shadow_image" "$final_image"
    else
      cp "$text_image" "$final_image"
    fi

    rm -f "$text_image" "$shadow_image"

    if [ $? -ne 0 ]; then
      echo "Error generating watermark image."
      exit 1
    fi

    if [ $enable_wave -eq 1 ]; then
      gm convert "$watermark_image" -bordercolor none -border 200x200 "$watermark_image"
      gm convert "$watermark_image" -wave "$wave_amplitude"x"$wave_length" "$watermark_image"
      gm convert "$watermark_image" -trim "$watermark_image"
    fi

    # Trim the final image
    gm convert "$final_image" -trim "$watermark_image"

    echo "Watermark image '$watermark_image' created."

    # --- 2. Adding the watermark to the video using FFmpeg ---
    echo "Adding watermark to video '$input_video'..."
    ffmpeg -i "$input_video" -i "$watermark_image" -filter_complex "overlay=x=$watermark_x:y=$watermark_y" -c:a copy "$output_video"


    if [ $? -ne 0 ]; then
      echo "Error adding watermark to video."
      rm -f "$watermark_image"
      exit 1
    fi

    echo "Watermark added. Output file: $output_video"
    rm -f "$watermark_image"


    echo "Script finished."


    exit 0


  • Yakob Ingers
    12 maja 2025, 23:17 |

    The sample of my new script: 

    ./finale.ksh  -size 122  -i input.mp4 -label sdfds  -shadow -x 250 -y 250 -font Helvetica -wave -color white
    The result:

    image


    This is a shell script (.ksh) designed to add a text watermark to a video file. It utilizes two command-line tools:

    1. GraphicsMagick (gm convert, gm composite): Used to generate the watermark image with optional shadow and wave effects.
    2. FFmpeg (ffmpeg): Used to overlay the generated watermark image onto the input video.

    Key functionalities:

    • Takes input video and watermark text as mandatory arguments.
    • Offers several optional parameters:
      • -font: Specifies the font for the text watermark.
      • -color: Sets the color of the text.
      • -size: Controls the size of the text.
      • -shadow: Enables a shadow effect behind the text.
      • -wave: Applies a wave distortion effect to the text.
      • -x and -y: Define the position of the watermark on the video.
    • Lists available fonts using the --help fonts option.
    • Generates a PNG image of the text watermark (with shadow and wave if enabled) using GraphicsMagick.
    • Overlays the generated PNG image onto the input video using FFmpeg.
    • Outputs the watermarked video to a file named output_with_wm.mp4.
    • Handles errors such as missing mandatory arguments or failures in image generation or video processing.
    • Cleans up by removing the temporary watermark image file after processing.

    In essence, the script automates the process of creating a text-based watermark with optional visual enhancements and embedding it into a video file.


    #!/bin/ksh


    # --- Default parameters ---

    input_video=""
    watermark_text=""
    selected_font="Arial"
    text_color="white"
    text_size=50
    enable_shadow=0
    enable_wave=0
    watermark_x=10
    watermark_y=10


    # --- Function to list available fonts ---
    list_fonts() {
      echo "Avaiable Fonts:"
      fc-list | awk -F: '{print $1}' | sort -u
    }


    # --- Argument processing ---
    while [ $# -gt 0 ]; do
      case "$1" in
        -i)
          if [ $# -gt 1 ]; then
            input_video="$2"
            shift 2
          else
            echo "Error: Expected filename after -i."
            exit 1
          fi
          ;;
        -label)
          if [ $# -gt 1 ]; then
            watermark_text="$2"
            shift 2
          else
            echo "Error: Expected text after -label."
            exit 1
          fi
          ;;
        -font)
          if [ $# -gt 1 ]; then
            selected_font="$2"
            shift 2
          else
            echo "Error: Expected font name after -font."
            exit 1
          fi
          ;;
        -color)
          if [ $# -gt 1 ]; then
            text_color="$2"

            shift 2

          else

            echo "Error: Expected color after -color."

            exit 1

          fi

          ;;

        -size)

          if [ $# -gt 1 ]; then

            text_size="$2"

            shift 2

          else

            echo "Error: Expected size after -size."

            exit 1

          fi

          ;;

        -shadow)

          enable_shadow=1

          shift

          ;;

        -wave)

          enable_wave=1

          shift

          ;;

        -x)

          if [ $# -gt 1 ]; then

            watermark_x="$2"

            shift 2

          else

            echo "Error: Expected value after -x."

            exit 1

          fi

          ;;

        -y)

          if [ $# -gt 1 ]; then

            watermark_y="$2"

            shift 2

          else

            echo "Error: Expected value after -y."

            exit 1
          fi
          ;;

        --help)
          case "$2" in
            fonts)
              list_fonts
              exit 0
              ;;

            *)

              echo "Usage: $0 -i <input_video> -label \"text\" [options]"
              echo "Options: -font <font_name>, -color <color>, -size <size>, -shadow, -wave, -x <number>, -y <number>"
              echo "           $0 --help fonts"
              exit 0

              ;;
          esac
          exit 0
          ;;

        *)

          echo "Unknown parameter: '$1'"
          echo "Usage: $0 -i <input_video> -label \"text\" [options]"
          echo "           $0 --help fonts"
          exit 1
          ;;
      esac

    done


    # --- Check for mandatory parameters ---

    if [ -z "$input_video" ] || [ -z "$watermark_text" ]; then
      echo "Error: You must specify -i <input_video> and -label \"text\"."
      echo "Usage: $0 -i <input_video> -label \"text\" [options]"
      echo "           $0 --help fonts"
      exit 1
    fi


    # --- GraphicsMagick settings ---

    watermark_text_safe=$(echo "$watermark_text" | sed 's/ /_/g')
    watermark_image="watermark_${watermark_text_safe}_${selected_font}_${text_color}_${text_size}.png"
    font_file="$selected_font"
    shadow_color="#00000080" # Semi-transparent black

    shadow_offset="+2+2"
    wave_amplitude=5
    wave_length=20
    watermark_x_offset=0
    watermark_y_offset=0

    output_video="output_with_wm.mp4"

    echo "Input video file: $input_video"
    echo "Watermark text: $watermark_text"
    echo "Font: $selected_font"
    echo "Text color: $text_color"
    echo "Text size: $text_size"
    echo "Position (x, y): ($watermark_x, $watermark_y)"

    if [ $enable_shadow -eq 1 ]; then
      echo "Shadow enabled."
    fi

    if [ $enable_wave -eq 1 ]; then
      gm convert "$watermark_image" -bordercolor none -border 10x10 -wave "$wave_amplitude"x"$wave_length" -trim "$watermark_image"
      echo "Wave effect enabled."
    fi

    # --- 1. Generating the image with text and effects using GraphicsMagick ---
    echo "Generating image with text '$watermark_text' in font '$selected_font', color '$text_color', size '$text_size'..."

    text_image="text_$watermark_image"
    shadow_image="shadow_$watermark_image"
    final_image="$watermark_image"

    # Create image with main text
    gm convert -background none -font "$font_file" -pointsize "$text_size" -fill "$text_color" label:"$watermark_text" "$text_image"

    # Create shadow image (offset text)
    if [ $enable_shadow -eq 1 ]; then
      gm convert -background none -font "$font_file" -pointsize "$text_size" -fill "#00000080" label:"$watermark_text" -bordercolor none -border 5x5 "$shadow_image"

      gm composite -geometry "+12+12" "$text_image" "$shadow_image" "$final_image"
    else
      cp "$text_image" "$final_image"
    fi

    rm -f "$text_image" "$shadow_image"

    if [ $? -ne 0 ]; then
      echo "Error generating watermark image."
      exit 1
    fi

    if [ $enable_wave -eq 1 ]; then
      gm convert "$watermark_image" -bordercolor none -border 200x200 "$watermark_image"
      gm convert "$watermark_image" -wave "$wave_amplitude"x"$wave_length" "$watermark_image"
      gm convert "$watermark_image" -trim "$watermark_image"
    fi

    # Trim the final image
    gm convert "$final_image" -trim "$watermark_image"

    echo "Watermark image '$watermark_image' created."

    # --- 2. Adding the watermark to the video using FFmpeg ---
    echo "Adding watermark to video '$input_video'..."
    ffmpeg -i "$input_video" -i "$watermark_image" -filter_complex "overlay=x=$watermark_x:y=$watermark_y" -c:a copy "$output_video"


    if [ $? -ne 0 ]; then
      echo "Error adding watermark to video."
      rm -f "$watermark_image"
      exit 1
    fi

    echo "Watermark added. Output file: $output_video"
    rm -f "$watermark_image"


    echo "Script finished."


    exit 0


Aktualne zlecenia dla freelancerów w kategorii C i C++

Rozwój oprogramowania dla Arduino (moduły RF 3–7,5 GHz, automatyczne skanowanie częstotliwości)

Należy opracować system na Arduino do automatycznego wyszukiwania aktywnego analogowego sygnału wideo oraz automatycznego dostosowywania nadajnika do wykrytej częstotliwości.Planowane jest wykorzystanie trzech oddzielnych modułów odbiorczo-nadajnych: 3000–4200 MHz; 4900–6000…

C i C++Systemy wbudowane i mikrokontrolery ∙ 19 godzin 4 minuty temu ∙ 4 oferty

Czarna Ukraina (projekt RP na bazie MTA)

4237 PLN

Naprawa błędów o różnym stopniu skomplikowania, jak te przedstawione na zdjęciach. Dostosowanie nawigacji mapy. Naprawa dziur w mapie, dostosowanie pojazdów do projektu, usuwanie logo lub ich przepisanie.

C i C++Python ∙ 2 dni 6 godzin temu ∙ 16 ofert

Inżynier infrastruktury proxy mieszkalnych

Budujemy sieć proxy dla użytkowników od podstaw — w pełni własną, bez dostawców zewnętrznych. Potrzebujemy jednego wyjątkowego inżyniera sieci, który zbuduje całą podstawę techniczną. Co zbudujesz: - SDK w tle dla Androida, które kieruje ruch proxy przez urządzenia użytkowników…

C i C++DevOps ∙ 6 dni 15 godzin temu ∙ 13 ofert

Dobrobka w istniejącej wersji 1c detalicznego bloku dla RC (centrum dystrybucji)

Ogólnie wyjaśnię, co mamy za bazę - jest ogólny serwer, gdzie znajduje się baza Detal (gdzie rejestrowane są wszystkie przychody) - baza UTP, do której przelewają się wszystkie sprzedaże - liczy się marża, stany magazynowe - małe bazy detalicznych sklepów. W przypadku wymian,…

C i C++C# ∙ 7 dni 5 godzin temu ∙ 6 ofert

Mistrzowska program «KONSTRUCTOR»

15 253 PLN

Szukamy bardzo doświadczonego programisty C++ do modernizacji istniejącego oprogramowania (programu głównego). Program odpowiada za tworzenie pochodnego oprogramowania reprezentującego sesje audiowizualnej korekcji psychologicznej. Obecna wersja jest napisana w czystym WinAPI…

C i C++Aplikacje desktopowe ∙ 12 dni 9 godzin temu ∙ 20 ofert

Zleceniodawca
David Tourino TouxStudio
Hiszpania Las Palmas  6  0
Zlecenie zostało opublikowane
1 rok temu
185 wyświetleń
Tagi
  • ffmpeg
  • API