Offizielle Website https://ffmpeg.org/download.html
und zu Umgebungsvariablen hinzugefügt
ffmpeg -v ffmpeg Version 6.0 Copyright (c) 2000–2023 Die FFmpeg-Entwickler erstellt mit Apple Clang Version 14.0.3 (clang-1403.0.22.14.1)
Die Anzeige der Versionsnummer zeigt den Erfolg an
Drücken Sie auf der Browserseite F12, um die Benutzeroberfläche aufzurufen, um Netzwerkanfragen anzuzeigen, m3u8
Informationen zu filtern, nach Vorschauinhalten zu suchen, auf das Video zu klicken, die Live-Übertragungswiedergabe zu suchen, darauf zu klicken und den Fortschrittsbalken nach hinten zu ziehen Inhalt, aktualisieren Sie ihn. Auf diese Anfrage wird zugegriffen, bevor das Video geladen wird. Es wird möglicherweise nicht aufgezeichnet.
Der erste Schritt besteht darin, einen Blick in den Computerraum zu werfen, aus dem header
stammt.
Im zweiten Schritt wählt Strg + A den gesamten Inhalt der Vorschau aus.
Etwas in der Art:
#EXTM3U#EXT-X-VERSION:3#EXT-X-MEDIA-SEQUENCE:1#EXT-X-TARGETDURATION:35#EXTINF:33.000,xxx/1.ts?auth_key=xxx ...
Speichern Sie es als aa.bj.m3u8
im selben Verzeichnis wie das Python-Skript. Beachten Sie, dass bj in der Mitte unterschiedlich sein kann .
Führen Sie dann das Skript python3 a.py
aus. Es wird ein Cache-Ordner erstellt, der das Wiederaufnehmen des Downloads unterstützt und nach Abschluss des Downloads automatisch gelöscht wird.
Der Parameter -mac-crf
kann nicht zum Komprimieren des Videos verwendet werden und die Encoder-Anweisungen müssen ersetzt werden.
Demoversion, anders als Automatisierungsskript
Importanfragen, Betriebssystem, Re, Zeit# sz bedeutet Shenzhen, bj bedeutet Peking, base_url = "https://dtliving-sz.dingtalk.com/live_hp/" def get_url(): url_list = [] mit open("aa. m3u8", "r") as f: s = f.readlines() for i in s: if re.match(r".*?ts.*?", i): url_list.append(base_url + i) return url_listdef download(): urls = get_url() für i, url in enumerate(urls): mit open(f"{i + 1}.ts", "wb") als f: Antwort = request.get(url[: -1]) # Zeilenumbrüche entfernen print(i, "ok") # time.sleep(1)# Dateinamen integrieren, um das Zusammenführen von FFmpeg zu erleichtern def parse_filename(): base_path = os.getcwd() urls = get_url() mit open ("file.txt", "w+") as f: for i in range(1, 1 + len(urls)): path = f"file '{base_path}/{i}.ts'n" print( path) f.write(path)if __name__ == "__main__": download() print("Download beendet...") parse_filename()
Bei Erfolg wird eine Reihe von二进制
heruntergeladen, 1.ts, 2.ts, 3.ts, ...
Wenn es falsch ist, handelt es sich um eine Datei mit Inhalt xml
Format, und beim Öffnen wird eine Fehlermeldung angezeigt.
Die Lösung besteht darin, festzustellen, ob base_url
nicht übereinstimmt oder sz und bj falsch sind.
ffmpeg -f concat -safe 0 -i file.txt -c a.mp4 kopieren
Ich glaube, wenn die Datei nach dem Zusammenführen zu groß ist, können Sie sie mit ffmpeg
erneut komprimieren oder mit h256/hevc
neu codieren, um eine kleinere Dateigröße zu erhalten.
Es wird empfohlen, die Permute-Softwarekomprimierung zu verwenden
Die Verwendung eines effizienteren Videokodierungsformats ist eine gängige Methode, um die Größe von Videodateien zu reduzieren, indem ein Videokodierungsformat mit einer höheren Komprimierungsrate verwendet wird. Hier ist ein Beispiel für die Verwendung von FFmpeg zum Konvertieren von Videos in das H.265-Kodierungsformat:
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4
Der obige Befehl konvertiert das Eingabevideo input.mp4 in das H.265-Kodierungsformat und speichert das Ergebnis als Ausgabedatei.mp4. Unter diesen gibt die Option -c:v den Video-Encoder an, libx265 gibt die Verwendung des x265-Encoders an, die Option -crf gibt die Videoqualität an und 28 gibt die Zielvideoqualität an größer die Dateigröße.
Test, 1,3g-Video wird auf eine Größe von 231 m komprimiert, aber die Geschwindigkeit ist zu langsam. Geschwindigkeit = 0,8, 3 Stunden Videokomprimierung dauerte 4 Stunden, ich suchte nach anderen Methoden
hevc_videotoolbox ist nicht so gut wie libx265, aber auf meinem m1 MacBook Air 13 sehr schnell.
Wie die meisten hardwarebeschleunigten Encoder ist hevc_videtoolbox nicht so effizient wie libx265. Daher müssen Sie ihm möglicherweise eine deutlich höhere Bitrate als libx265 zuweisen, um eine gleichwertige Qualität zu erreichen. Dies könnte den Zweck der Neukodierung von H.264 auf HEVC/H.265 zunichte machen.
Offizielle Website https://trac.ffmpeg.org/wiki/HWAccelIntro#VideoToolbox
# VideoToolbox [¶](https://trac.ffmpeg.org/wiki/HWAccelIntro#VideoToolbox "链接到这一节") [VideoToolbox](https://developer.apple.com/documentation/videotoolbox) is the macOS framework for video decoding and encoding. The following codecs are supported: - Decoding: H.263, H.264, HEVC, MPEG-1, MPEG-2, MPEG-4 Part 2, ProRes - Encoding: H.264, HEVC, ProRes To use H.264/HEVC hardware encoding in macOS, just use the encoder `-c:v h264_videotoolbox` or `-c:v hevc_videotoolbox` for H.264 or HEVC respectively. Check `ffmpeg -h encoder=...` to see encoder options. VideoToolbox supports two types of rate control: - Bitrate-based using `-b:v` - Constant quality with `-q:v`. Note that the scale is 1-100, with 1 being the lowest and 100 the highest. Constant quality mode is only available for Apple Silicon and from ffmpeg 4.4 and higher.
Aktivieren Sie die GPU-Beschleunigung 3 und geben Sie den Video-Encoder für die Kodierung an. Es ist zu beachten, dass VideoToolbox CRF nicht unterstützt, daher muss die Bitrate über -b:v
angegeben werden.
Codec AVOption crf (Wählen Sie die Qualität für den Modus „Konstante Qualität“) wurde für keinen Stream verwendet. Der wahrscheinlichste Grund ist entweder ein falscher Typ (z. B. eine Videooption ohne Videostreams) oder dass es sich um eine private Option eines Encoders handelt Wird eigentlich nicht für einen Stream verwendet.
Das Testen der Standardoptionen ist etwa zehnmal schneller
ffmpeg video -i input.mp4 -c:v hevc_videotoolbox output.mp4
Frame=126360 fps=114 q=-0,0 Lsize= 413400kB Zeit=02:55:29,95 Bitrate= 321,6kbits/s dup=663 drop=0 Geschwindigkeit=9,51x Video: 315854 KB Audio: 93814 KB Untertitel: 0 KB andere Streams: 0 KB globale Header: 0 KB Muxing-Overhead: 0,910847 %
Es ist etwa zehnmal schneller als das vorherige und die Dateigröße ist von 800 m auf 400 m gestiegen, aber die Komprimierungsrate ist gesunken. Ich werde noch ein paar Dateien testen.
Zu den Kodierungen, die h264 in macOS entsprechen, gehören libx264 und h264_videotoolbox. Die beiden Geschwindigkeiten sind ähnlich, aber libx264 hat eine hohe CPU-Auslastung und die transkodierte Dateigröße ist ebenfalls gering.
Nach meinem Test habe ich festgestellt, dass die H265-Kodierung bei der Aufnahme und Übertragung offensichtliche Vorteile in 4K bietet und die Live-Wiedergabe von DingTalk nur 12 Bilder und 1080p-Bildqualität bietet Aufnahme und Rundfunk, die ich studiert habe. Die meisten davon sind ppt, und es gibt nur sehr wenige Sportaufnahmen.
Folgende Anleitung wird empfohlen:
find ./ -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -c:v libx264 -crf 30 -c:a aac "${0%%.mp4}-hevc.mp4"' {} ;
Codequelle https://blog.51cto.com/u_15366127/6084937 ↩
Mehrere Möglichkeiten, ffmpeg zu verwenden, um die Videogröße zu reduzieren https://juejin.cn/post/7222575963564654648 ↩
FMPEG-Hardwarebeschleunigung https://blog.xm.mk/posts/1a3h/ ↩