Video entfernen / Audio von Ogg Theora Video zu Ogg Vorbis extrahieren

708
ZN13

Ich habe einige Songs im .ogg-Format, aber sie enthalten auch Videos (die nur das gesamte Cover des Albums abdecken, wenn es in einem Video-Player abgespielt wird). Wie kann ich den Videoteil der Dateien verlustfrei entfernen? Das Audioformat ist bereits vorbis mit Lavc56.60.100 libvorbis codiert. Hoffentlich beinhaltet die Lösung keine Umcodierung der Datei mit ffmpeg / avconv.

1

2 Antworten auf die Frage

3
ZN13

Oh, anscheinend gibt es dafür ein Tool namens oggz-rip. Ich glaube, der Paketname ist entweder liboggz oder oggz-tools, abhängig von Ihrer Distribution.

So extrahieren Sie Audio aus einer .ogv-Datei:

oggz-rip -c vorbis input_video.ogv > output_audio.ogg 

Oder wenn Sie nur Video und kein Audio wünschen:

oggz-rip -c theora input_video.ogv > output_video.ogv 

(Alternativ kann der Befehl auch oggzrip und nicht oggz-rip sein, abhängig von Ihrer Distribution.)

2
flolilolilo

Wenn Sie FFmpeg verwenden möchten (wenn Sie es beispielsweise regelmäßig verwenden und nicht unzählige Single-Use-Anwendungen auf Ihrem Computer haben möchten), können Sie es ohne erneute Codierung verwenden :

ffmpeg -i input_video.ogv -vn -c:a copy output_audio.ogg 

( -vn: kein Video -c:a copy.: Kopieren Sie einfach den Audio-Stream.) Quelle1

ffmpeg -i input_video.ogv -an -c:v copy output_audio.ogv 

( -an: kein Audio. -c:v copyKopieren Sie einfach den Videostream.) Quelle1

Oder instad von -vn/ -ankönnen Sie auch die Ströme angeben kopieren mit -map:

ffmpeg -i input_video.ogv -map 0:0 -c:a copy output_audio.ogg 

(Nur den ersten Stream (der ersten Eingabedatei) der Ausgabe zuordnen ) Source2

Beachten Sie, dass Sie die Stream-Nummer (und ihren Inhalt) über FFmpeg herausfinden können:

ffmpeg -i input_video.ogv -hide_banner 

( -hide_bannerist nicht notwendig, aber die Ausgabe wird für das Auge einfacher, da Sie nicht die Build-Infos von FFmpeg anzeigen.)

+1 für das Hinzufügen einer ffmpeg-Antwort. Können Sie bestätigen, dass sie nicht neu codiert? ZN13 vor 6 Jahren 0
Source1 besagt, dass "[...] kopieren, dass der Stream nicht neu codiert werden soll." Ich verwende FFmpeg regelmäßig mit verschiedenen Dateiformaten und habe nie gesehen, dass "copy" etwas neu codiert. Ich habe das über CPU- und Festplattenstatistiken überprüft (~ 0% CPU-Nutzung und ~ 100% Festplattennutzung im Vergleich zu "normal"). (Neu-) Kodierungen) und direktes Vergleichen der Ausgaben (zB nach http://dericed.com/2012/display-video-difference-with-ffmpegs-overlay-filter/: `ffmpeg -y -i -i fileA.mov -i fileB.mov -filter_complex '[1: v] format = yuva444p, lut = c3 = 128, negiere [video2withAlpha], [0: v] [video2withAlpha] overlay [out]' -map [out] fileA-B.mov` ) flolilolilo vor 6 Jahren 2