[PYTHON] Konvertieren Sie mp4 in mp3 mit ffmpeg (eingebettete Thumbnail-Version)

Die folgenden Funktionen wurden zu [MP4 mit ffmpeg in MP3 konvertieren] hinzugefügt (http://qiita.com/miyagi389/items/6de37c1393a19c93046a).

Ffmpeg wurde verwendet, um das Vorschaubild (Grafik) auszuschneiden.

Eyed3 wurde verwendet, um das Miniaturbild (Bildmaterial) einzubetten. eyed3 ist ein Tool, das MP3-Tag-Informationen bearbeiten kann. Diesmal habe ich es aus dem Python-Skript heraus verwendet. Es gibt auch eine CLI. python2.7 ist erforderlich, da python3 nicht unterstützt wird.

Betriebsumgebung

Installation

# ffmpeg
brew install ffmpeg --with-tools

# eyed3
pip install eyed3==0.7.8

Konvertierungsskript

ffmpeg_conv_mp3.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
# system requirement
    * python 2.7

# install
    $ brew install ffmpeg --with-tools
    $ pip install eyed3==0.7.8
"""

import argparse
import eyed3
from eyed3.id3.frames import ImageFrame
from os import getcwd, path, system, remove
import sys

FFMPEG_MP42MP3_CMD = (
    u'ffmpeg'
    u' -y'
    u' -loglevel warning'
    u' -i "{src_file}"'
    u' -acodec libmp3lame'
    u' -ab 256k'
    u' "{dest_file}"'
)
FFMPEG_THUMBNAIL_CMD = (
    u'ffmpeg'
    u' -y'
    u' -loglevel warning'
    u' -i "{src_file}"'
    u' -ss 5'
    u' -vframes 1'
    u' -f image2'
    u' "{dest_file}"'
)


def rename_filename_ext(src_file, rename_ext, dest_directory):
    name, ext = path.splitext(path.basename(src_file))
    return (name, path.join(dest_directory, name + rename_ext))


def main(src_files, dest_directory):
    for src_file in src_files:
        src_file = path.abspath(src_file).decode('utf-8')
        dest = path.abspath(dest_directory).decode('utf-8')

        title, dest_mp3_file = rename_filename_ext(src_file, u'.mp3', dest)
        title, dest_png_file = rename_filename_ext(src_file, u'.png', dest)

        # mp4 -> mp3 encode
        ffmpeg_cmd = FFMPEG_MP42MP3_CMD.format(
            src_file=src_file,
            dest_file=dest_mp3_file
        )
        print(u'{0} -> {1}'.format(src_file, dest_mp3_file))
        system(ffmpeg_cmd.encode(sys.stdin.encoding))

        #Schneiden Sie ein Miniaturbild aus mp4 aus
        ffmpeg_cmd = FFMPEG_THUMBNAIL_CMD.format(
            src_file=src_file,
            dest_file=dest_png_file
        )
        system(ffmpeg_cmd.encode(sys.stdin.encoding))

        #Betten Sie das Miniaturbild in die MP3-Datei ein
        f = eyed3.load(dest_mp3_file)
        if f.tag is None:
            f.initTag()
        f.tag.title = title
        with open(dest_png_file, 'rb') as dest_png:
            f.tag.images.set(
                ImageFrame.FRONT_COVER,
                dest_png.read(),
                'image/png'
            )
        f.tag.save(encoding='utf-8')

        if path.exists(dest_png_file):
            remove(dest_png_file)


def parse_args():
    parser = argparse.ArgumentParser(
        description=u'Konvertieren Sie mp4 in mp3 mit ffmpeg(Eingebettete Miniaturansicht)'
    )
    parser.add_argument(
        'source_files',
        metavar='source_file',
        nargs='+',
        help='source files'
    )
    parser.add_argument(
        '--dest',
        metavar='destination_directory',
        nargs='?',
        default=getcwd(),
        help='destination directory (default: current directory)'
    )
    return parser.parse_args()


if __name__ == '__main__':
    args = parse_args()
    main(args.source_files, args.dest)
chmod +x ffmpeg_conv_mp3.py

Wie benutzt man

Codieren Sie "* .mp4" im Verzeichnis "./mp4/in/" in mp3 und geben Sie es im Verzeichnis "./mp4/out/" aus.

ffmpeg_conv_mp3.py ./mp4/in/*.mp4 --dest ./mp4/out/

Recommended Posts

Konvertieren Sie mp4 in mp3 mit ffmpeg (eingebettete Thumbnail-Version)
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Konvertieren Sie Videos mit ffmpeg + python + opencv in Schwarzweiß
Konvertieren Sie .ipynb in .html (mit BatchFile)
Konvertieren Sie wma in mp3 auf dem Mac
Konvertieren Sie die Liste mit Python in DataFrame
MP3 → WAV-Konvertierung mit Python
Konvertieren Sie Sätze mit gensim in Vektoren
Konvertieren Sie PDF in Image mit ImageMagick
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
Konvertieren Sie Memos sofort mit Python 2to3
Konvertieren Sie mit pdfplumber von PDF in CSV
Lassen Sie uns mit TDD ~ Key Input Detection Version ~ etwas entwickeln, das dem Integrierten nahe kommt
Konvertieren Sie Zeichenketten mit RoBERTa in Merkmalsmengen
Konvertieren Sie Excel-Daten mit Python in JSON
Konvertiere Hiragana mit Python (Beta) in Romaji
Konvertieren Sie PDF-Dateien mit GIMP in PNG-Dateien
Konvertieren Sie ein Array (struct) mit golang in json
Konvertieren Sie chinesische Zahlen mit Python in arabische Zahlen
Beispiel für die Wavelet-Konvertierung von Bildern in Python
DICOM zu PNG Konvertierung mit aufsteigend und absteigend
Konvertieren Sie Daten mit Form (Anzahl der Daten, 1) in (Anzahl der Daten,) mit numpy.
Konvertieren Sie PDF in Bilder (JPEG / PNG) mit Python
Konvertieren Sie PDFs mit Python in Massenbilder
Konvertieren Sie die SVG-Datei mit Python in png / ico
Konvertieren Sie Windows-Epochenwerte mit Python in das Datum
Konvertieren Sie Jupyter-Notizbücher ganz einfach in Blogs mit Fastpages
[Verbesserte Version] Skript zur Überwachung der CPU mit Python
Konvertieren von (32,32,3) in einen 4-dimensionalen Tensor (1,32,32,1) mit ndarray-Typ
Konvertieren Sie die Zeichenfolge mit Python in ein zeichenweises Listenformat
Zum HSV konvertieren
Ich möchte ein Bild mit Lollipop in WebP konvertieren
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Zeigen Sie eingebettete Bilder von MP3 und Flac mit Mutagen an
0 Konvertieren Sie nicht ausgefülltes Datum in Datums- / Uhrzeittyp mit regulärem Ausdruck
Konvertieren Sie eine Textdatei mit hexadezimalen Werten in eine Binärdatei
So konvertieren Sie horizontal gehaltene Daten mit Pandas in vertikal gehaltene Daten
So konvertieren Sie ein Klassenobjekt mit SQLAlchemy in ein Wörterbuch
So messen Sie die Wiedergabezeit von MP3-Dateien mit Python
Konvertieren Sie das Bild in .zip mit Python in PDF
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
PyInstaller-Memorandum Konvertieren Sie Python [.py] in [.exe] mit 2 Zeilen
Konvertieren Sie numerische Variablen mit Pandas in kategoriale Variablen, indem Sie einen Schwellenwert festlegen