FFmpeg: Ihr leistungsstarker Video-Helfer / Audio in deiner Bewerbung

Inhalt

Dieser Artikel wurde im Rahmen der Data Science Blogathon

Der Name ist inspiriert von MPEG, que significa Expertengruppe für bewegte Bilder. FF steht für Fast Forward. Die MPEG-Gruppe ist der Zusammenschluss von Arbeitsgruppen zur Etablierung vieler der heute wesentlichen Videostandards., einschließlich MP4-Format, die wir alle kennen.

Ergebnisse

  1. Was ist FFmpeg?
  2. Warum verwenden Leute FFmpeg?
  3. So konfigurieren Sie FFmpeg in Windows, Ubuntu und macOS.
  4. Bibliotheken sind von FFmpeg für Medienmanipulationen verfügbar.
  5. Tools, die FFmpeg für Befehlszeilenanwendungen mitbringt.
  6. Verwendung und Beispiele für FFprobe und FFplay.

Warum verwenden Leute FFmpeg?

Es wird oft als das Schweizer Taschenmesser der Medientranskodierung oder des Streamings bezeichnet.. Wir können FFmpeg verwenden, um viele Funktionen auszuführen. Der Code ist in C geschrieben und für eine bessere Leistung optimiert. Seine Befehle sind einfach auszuführen. Sobald Sie mit den Konzepten vertraut sind, Es ist sehr flexibel für alle Filter und Optionen, die Sie je nach Bedarf verwenden können.

FFmpeg unterstützt eine Vielzahl von Codes, Formate, Geräte und Protokolle, Dies macht es zu einer idealen Wahl als Transcoding-Engine. Im Gegensatz zu vielen eingestellten Projekten, befindet sich seit mehr als 20 Jahre. Es gibt eine große Entwickler-Community, Benutzer und Mitwirkende entwickeln ständig neue Funktionen und Fehlerbehebungen.
FFmpeg wurde in der zentralen Verarbeitung für Videoplattformen wie YouTube und iTunes verwendet. Die meisten von uns verwenden einen Mediaplayer wie VLC, um Videodateien abzuspielen. VLC verwendet FFmpeg-Bibliotheken als Kern. Einige Videoeditoren und mobile Apps verwenden auch FFmpeg unter der Haube.

FFmpeg unter Windows einrichten, Ubuntu und macOS

Es gibt ein paar Dinge, die Sie vor der Einrichtung von FFmpeg wissen sollten. Es gibt keinen offiziellen Build für irgendein Betriebssystem. Aber es ist ein Open-Source-Projekt, die Sie aus dem FFmpeg-Quellcode im Internet erhalten können. Deswegen, Sie können es selbst aus dem Quellcode erstellen. Sie können einen Snapshot des aktuellen Quellcodes herunterladen hier oder leisten Sie eine Zahlung von Ihrem Git-Repository und befolgen Sie die Anweisungen, um es auf Ihrem Computer zu kompilieren. Dies kann etwas komplex und zeitaufwändig sein und erfordert möglicherweise, dass Sie einige Konfigurationsoptionen verstehen und auswählen.. Es kann auch notwendig sein, zu Beginn zusätzliche Tools und Compiler zu installieren. Dann, es sei denn, Sie haben einen guten Grund, es selbst zu bauen, Vielleicht möchtest du diesen Weg nicht gehen.

Stattdessen, Sie können ein vorkompiliertes FFmpeg-Paket für Ihr Betriebssystem herunterladen und installieren. Es gibt zwei Möglichkeiten, diese vorkompilierten Binärdateien zu konfigurieren. Wenn Sie einen Paketmanager wie APT unter Ubuntu und Homebrew unter macOS haben, Es ist einfacher zu verwenden, da es sich um das Herunterladen von FFmpeg und seinen Abhängigkeiten kümmert.

Lass uns die Dinge so einfach wie möglich halten und den einfachsten Weg wählen, um anzufangen. Die folgenden Verfahren zeigen, wie Sie mit vorkompilierten Paketen konfigurieren können.

Mac OS

Unter macOS, der einfachste Weg, FFmpeg zu installieren, ist über Homebrew. Stellen Sie sicher, dass Sie Homebrew auf Ihrem macOS installiert haben, oder du kannst fortfahren dieses Tutorial zur Installation von Homebrew.
Wir verwenden macOS 11.4 in diesem Fall.

  • Terminal öffnen und eingeben brew — version . Sie sollten die Vorbereitungsversion im Terminal gedruckt sehen, wenn Homebrew erfolgreich installiert wurde.
1cucofunxeyjimaenwsuefq-6213099
Brew-Version auf macOS
  • Für macOS in x86-Architektur, benutze den Befehlbrew install ffmpeg während für M1 bitte den Befehl verwenden aarch arm64 brew install ffmpeg .
17yvx9lrfkwi9kbpydhkojg-6811127
Laden Sie die erforderlichen Abhängigkeiten herunter und installieren Sie sie
  • Nach Abschluss der Installation, du kannst Tippen ffmpeg -version im Terminal. Wenn die FFmpeg-Version gedruckt wird, es bedeutet, dass FFmpeg erfolgreich installiert wurde.
195-zjmk8ldxmvcmriaogma-5442168

Fenster

Im Gegensatz zu APT unter Ubuntu und Homebrew unter macOS, es gibt keinen bekannten Paketmanager in Windows, die Sie verwenden können, um FFmpeg schnell zu installieren. Für Windows, Sie müssen es deaktivieren und manuell konfigurieren.

Es gibt 4 Verfügbare Windows FFmpeg-Build-Varianten, die gefunden werden können hier:

  1. git full – aufgebaut aus einem Master-Zweig mit einer großen Anzahl von Bibliotheken.
  2. git essentials – erstellt aus einem Master-Zweig mit häufig verwendeten Bibliotheken.
  3. release full – erstellt aus dem neuesten Zweig der Veröffentlichung mit einer großen Auswahl an Bibliotheken.
  4. release essentials – erstellt aus dem neuesten Zweig der Version mit häufig verwendeten Bibliotheken.

Wir werden in unserem Fall FFmpeg-Release-Essentials verwenden.

  • Laden Sie die Grundlagen der FFmpeg-Version herunter hier.
  • Extrahieren Sie die Dateien an einen Ort, an dem Sie sie in Zukunft verwenden werden. In meinem Fall, Ich habe sie auf mein E-Laufwerk gelegt.
1zkspmfaxhfzot8bpkx078g-8508900
  • Innerhalb Abteil Der Ordner enthält die ausführbaren Dateien, die wir wollen.
17wmyn89jpbnnzdkmac-sgq-9018667
  • Hinzufügen Abteil Ordner a Variable Windows-Umgebungsweg damit wir dieses Tool ausführen können, ohne jedes Mal den vollständigen Pfad angeben zu müssen. Suche Umgebungsvariablen in der Suchleiste und klicken Sie auf Umgebungsvariablen…
1m-rbx_dnbqtqymmmvfm15a-1528972
  • Klicke auf Weg In Benutzervariable, klicken Neu, und fügen Sie den vollständigen Pfad der Abteil Datei.
1r8dgzk3ok08cqva5bnre9w-7645832
  • Geöffnet Eingabeaufforderung und Typ ffmpeg -version . Wenn Sie sehen, dass die Version von FFmpeg gedruckt wird, es bedeutet, dass FFmpeg erfolgreich installiert wurde. Wir können auch prüfen ffprob -version Ja ffplay -version .
1ft5c0qnpv-xp6nkvuifx2w-1381098

FFmpeg-Bibliotheken

FFmpeg verfügt über mehrere wertvolle Bibliotheken, die Sie direkt aus Ihrem Anwendungscode verwenden können. Jede Bibliothek enthält verschiedene Funktionen, die sich auf einen bestimmten Bereich beziehen.

Einige der berühmten Bibliotheken sind:

  1. libavcodec: enthält alle Encoder und Decoder, die FFmpeg unterstützt.
  2. libavformat: hat alle Muxer und Demuxer, um mit verschiedenen Containerformaten zu arbeiten.
  3. libavfilter: Es besteht aus vielen Filtern, mit denen Sie das Audio oder Video entsprechend den Anforderungen ändern können.
  4. libavgerät: unterstützt mehrere verschiedene Eingabe- und Ausgabegeräte.
  5. libavutil: unterstützt tragbare Multimedia-Programmierung.
  6. libswscale: führt hochoptimierte Bildskalierung und Farbraum- und Pixelformatkonvertierungsvorgänge durch.
  7. libswresample: führt Resampling-Operationen durch, hochoptimiertes Remixen und Konvertieren von Audio-Sample-Formaten.

FFmpeg-Tools

Zusätzlich zu Bibliotheken, die Bibliotheken von anderen Anwendungen verwenden können, das FFmpeg-Paket enthält einige eigene Tools.

Einige der Werkzeuge sind:

  1. FFmpeg: Haupttranscoding-Engine. Wird oft über eine Befehlszeile oder einen anderen Prozess aufgerufen.
  2. ffplay: ein minimales Tool zum Abspielen von Audio oder Video.
  3. ffprobe: schnelle Medieninspektion, um wertvolle Informationen zu extrahieren, wie viele Streams gibt es in den Medien, die Bildrate eines Videos, etc.

Beispiele und Anwendung von FFprobe

Verwenden

ffprobe [OPTIONS] [INPUT_FILE]

  • man ffprobe– Siehe Handbuch.
  • ffprobe -h– Beispielhilfe enthalten.
  • -v error– Datensätze ausblenden, es sei denn, es liegt ein Fehler vor.
  • -show_format– Mit Tag formatierte Videometadaten anzeigen.
  • show_streams– Zeigt alle Streams im Archiv an (sowohl Video als auch Audio).
  • -print_format —Metadaten in einem bestimmten Format drucken (CSV / XML / JSON).
  • -select_streams
  • -show_entries stream=- Nur die spezifische Entität und ihre verschachtelten Abhängigkeiten anzeigen.
  • -show_entries stream= default-noprint_wrappers=1- Nur die bestimmte Entität anzeigen.
  • Sie können mehr über die Verwendung von FFprob erfahren hier.

    Grundlegende Beispiele

    $ ffprobe -v error -show_format -show_streams input.mp4
    Ausgabe:
    [STROM]
    Index=0
    codec_name=h264
    codec_long_name=H.264 / Schlaganfall / MPEG-4 AVC / MPEG-4-Teil 10
    Profil=Hoch
    codec_type=video
    codec_time_base=1/50
    codec_tag_string=avc1
    codec_tag=0x31637661
    Breite = 320
    Höhe=240
    has_b_frames=2
    sample_aspect_ratio=1:1
    display_aspect_ratio=4:3
    pix_fmt=yuv420p
    Stufe=13
    color_range=N/A
    color_space=unbekannt
    color_transfer=unbekannt
    color_primaries=unbekannt
    chroma_location=links
    Zeitcode=N/A
    refs=4
    is_avc=1
    nal_length_size=4
    ID=N/A
    r_frame_rate=25/1
    avg_frame_rate=25/1
    time_base=1/12800
    start_pts=0
    start_time=0.000000
    Dauer_ts=384000
    Dauer=30.000000
    Bitrate=34761
    max_bit_rate=N/A
    bits_per_raw_sample=8
    nb_frames=750
    nb_read_frames=N/A
    nb_read_packets=N/A
    ANORDNUNG:Standard=1
    ANORDNUNG:überspielen=0
    ANORDNUNG:Original=0
    ANORDNUNG:Kommentar = 0
    ANORDNUNG:Liedtext=0
    ANORDNUNG:Karaoke=0
    ANORDNUNG:erzwungen=0
    ANORDNUNG:Hörgeschädigt=0
    ANORDNUNG:visual_impaired=0
    ANORDNUNG:clean_effects=0
    ANORDNUNG:Attached_pic=0
    SCHILD:language=und
    TAG:handler_name=VideoHandler
    [/STROM]
    [STROM]
    index=1
    codec_name=aac
    codec_long_name=AAC (Erweiterte Audiocodierung)
    Profil=LC
    codec_type=audio
    codec_time_base=1/44100
    codec_tag_string=mp4a
    codec_tag=0x6134706d
    sample_fmt=fltp
    sample_rate=44100
    Kanäle=1
    channel_layout=mono
    bits_per_sample=0
    ID=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/44100
    start_pts=-1024
    start_time=-0.023220
    Dauer_ts=1324024
    Dauer=30.023220
    Bitrate=56517
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=1293
    nb_read_frames=N/A
    nb_read_packets=N/A
    ANORDNUNG:Standard=1
    ANORDNUNG:überspielen=0
    ANORDNUNG:Original=0
    ANORDNUNG:Kommentar = 0
    ANORDNUNG:Liedtext=0
    ANORDNUNG:Karaoke=0
    ANORDNUNG:erzwungen=0
    ANORDNUNG:Hörgeschädigt=0
    ANORDNUNG:visual_impaired=0
    ANORDNUNG:clean_effects=0
    ANORDNUNG:Attached_pic=0
    SCHILD:language=und
    TAG:handler_name=SoundHandler
    [/STROM]
    [FORMAT]
    Dateiname=Eingabe.mp4
    nb_streams=2
    nb_programme=0
    format_name=mov,mp4, m4a,3gp,3g2,mj2
    format_long_name=QuickTime / MOV
    start_time=-0.023220
    Dauer=30.024000
    Größe=368644
    Bitrate=98226
    probe_score=100
    SCHILD:major_brand=isom
    SCHILD:minor_version=512
    SCHILD:Compatible_brands=isomiso2avc1mp41
    SCHILD:title=FFprobe-Tipps
    SCHILD:Encoder=Lavf56.15.101
    [/FORMAT]
    • Aus dem obigen Beispiel, wenn du nur willst duration=30.024000 .
    $ ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1 input.mp4
    Ausgabe: Größe=368644
    • Wenn Sie nur den Wert ohne Schlüssel wünschen.
    $ ffprobe -v error -show_entries format=size -of default=noprint_wrappers=1:nokey=1 input.mp4
    Ausgabe: 368644
    • Breite und Höhe bekommen (Auflösung) Von Video.
    $ ffprobe -v Fehler -select_streams v:0 -show_entries stream=höhe,Breite -von csv=s=x:p=0 Eingabe.mp4
    Ausgabe: 1280x720

    Verwendung und Beispiele von FFplay

    Verwenden

    ffplay [OPTIONS] [INPUT_FILE]

    • man ffplay- Siehe Handbuch.
    • ffplay -h- Beispielhilfe enthalten.
    • ffplay - Video im Vollbildmodus abspielen.
    • -x -y - Video abspielen mit Pop-ups mit bestimmter Größe und Breite in der Mitte. Es füllt automatisch den zusätzlichen Raum zwischen dem Videobereich und dem Fensterbereich, wenn das Seitenverhältnis des Popup-Fensters und des Videos unterschiedlich ist.
    • -noborder- Blenden Sie die Titelleiste aus, während Sie Videos in Popup-Fenstern abspielen.
    • -[top/left/bottom/right] - Popup an bestimmten Koordinaten erstellen. Standardmäßig, erscheint in der Mitte des Bildschirms.

    Sie können mehr über die Verwendung von FFplay erfahren hier.

    Grundlegende Beispiele

    • Spielen Sie eine Videodatei namens video.mp4 im Vollbildmodus ab.
    $ ffplay video.mp4
    • Spielen Sie eine Videodatei in einem Popup-Fenster mit einer Größe von . ab 600 Breiten, 600 groß und ohne Titelleiste.
    $ ffplay video.mp4 -x 600 -Ja 600 -keine Grenze
    1xn2_esngyfgnieo0zaf8fg-2510588
    • Spielen Sie eine Videodatei in einem Popup-Fenster in der oberen linken Ecke ab.
    $ ffplay video.mp4 -x 600 -Ja 600 -noborder -top 0 -links 0
    1vo6spqx-apam4u8fpvhylq-5692967

    Fazit

    Wir hatten alle Grundlagen von FFmpeg abgedeckt. Fühlen Sie sich frei, ihre offizielle Dokumentation zu lesen hier wenn du ein tieferes verständnis haben willst!

    Verweise

    Über den Autor:

    Dieser Artikel wurde von Han Sheng . geschrieben, ein KI-Full-Stack-App-Entwickler von Cameron Highlands, Malaysia. Er/Sie ist begeistert von dem tiefes Lernen, Computer Vision und auch Edge-Geräte. Verschiedene Webanwendungen erstellt / KI-betriebene Mobiltelefone, die Kunden bei der Lösung realer Probleme unterstützen. Lies es gerne durch sein Portfolio.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher