Forum: PC Hard- und Software [Linux] .mkv-Video nach mp4 wandeln


von Taucher (Gast)


Lesenswert?

Ich möchte ein mkv-Video ins mp4-Format wandeln. Laut 
https://www.putorius.net/convert-mkv-to-mp4-linux.html soll das so mit 
ffmpeg gehen:
1
ffmpeg -i intro.mkv -codec copy intro.mp4

Leider funktioniert das nicht, ffmpeg verabschiedet sich mit folgendem 
Sermon:
1
ffmpeg version 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 the FFmpeg developers
2
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
3
  configuration: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
4
  WARNING: library configuration mismatch
5
  avcodec     configuration: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
6
  libavutil      55. 78.100 / 55. 78.100
7
  libavcodec     57.107.100 / 57.107.100
8
  libavformat    57. 83.100 / 57. 83.100
9
  libavdevice    57. 10.100 / 57. 10.100
10
  libavfilter     6.107.100 /  6.107.100
11
  libavresample   3.  7.  0 /  3.  7.  0
12
  libswscale      4.  8.100 /  4.  8.100
13
  libswresample   2.  9.100 /  2.  9.100
14
  libpostproc    54.  7.100 / 54.  7.100
15
Input #0, matroska,webm, from 'x.mkv':
16
  Metadata:
17
    ENCODER         : Lavf58.16.100
18
  Duration: 00:14:56.42, start: -0.007000, bitrate: 313 kb/s
19
    Stream #0:0: Video: av1, none(tv, bt709), 640x360, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
20
    Metadata:
21
      HANDLER_NAME    : ISO Media file produced by Google Inc.
22
      DURATION        : 00:14:56.400000000
23
    Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
24
    Metadata:
25
      DURATION        : 00:14:56.421000000
26
[mp4 @ 0x55c71b107140] Could not find tag for codec av1 in stream #0, codec not currently supported in container
27
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
28
Stream mapping:
29
  Stream #0:0 -> #0:0 (copy)
30
  Stream #0:1 -> #0:1 (copy)
31
    Last message repeated 1 times

Wie kann man das reparieren?

Gibt es eine andere Möglichkeit?

von TanteGoogle (Gast)


Lesenswert?

MKV und MP4 sind Containerformate, die verschiedene Codecs haben können.

Taucher schrieb:
> codec not currently supported in container

Im MKV Container ist das av1 Codec, welches nicht von MP4 unterstützt 
wird. Die Option -codec copy klappt daher nicht. Av1 muss z.b. in h264 
umgewandelt werden.

von babooshka (Gast)


Lesenswert?

Anderes Outputformat probieren?


zb. h264 u. aac;  -c:v h264 -c:a aac

von ich (Gast)


Lesenswert?

Die Fehlermeldung ist doch eindeutig, av1 wird in mp4-Containern nicht 
unterstützt. Wenn es mp4 sein muss bleibt wohl nichts anderes übrig als 
das Video zu konvertieren (nicht -codec copy), finde zwar keine 
explizite Quelle, aber wahrscheinlich kann mp4 wirklich kein av1.

von Taucher (Gast)


Lesenswert?

Es muss nicht mp4 sein. Es reicht irgend ein gängiges Format, das man 
auf jedem Linux- oder Windows-System abspielen kann.

von g457 (Gast)


Lesenswert?

> Es reicht irgend ein gängiges Format, das man auf jedem Linux- oder
> Windows-System abspielen kann.

Dafür ist AV1 aber eine schlechte Grundlage. Umkodieren und feddisch.

von M.M.M (Gast)


Lesenswert?

Taucher schrieb:
> Es muss nicht mp4 sein. Es reicht irgend ein gängiges Format, das man
> auf jedem Linux- oder Windows-System abspielen kann.

Es sind weder Linux noch Windows, die irgendetwas abspielen, sondern die 
auf dem System installierten Programme. Sofern alle nötigen Codecs 
installiert sind, ist das für Programme, die die Formate unterstützen, 
weder unter Linux, noch unter Windows ein Problem.

Von einem Format ins andere, als z.B. AV1 nach h264/h265 und das dann in 
mp4 verpacken ist der resultierenden Bildqualität sicherlich nicht 
förderlich.

MfG

von c-hater (Gast)


Lesenswert?

M.M.M schrieb:

> Von einem Format ins andere, als z.B. AV1 nach h264/h265 und das dann in
> mp4 verpacken ist der resultierenden Bildqualität sicherlich nicht
> förderlich.

Der Container spielt für die Qualität sicherlich keine Rolle. Die 
Wandlung natürlich schon. Dazu kommt, dass die Wandlung auch sehr 
zeitaufwendig ist, insbesondere, wenn die bestmögliche Qualität erhalten 
bleiben soll, ohne die Datei allzusehr zu vergrößern.

Die beste Lösung ist also: Zum Abspielen was verwenden, was nahezu jeden 
Container und nahezu jeden Codec kennt: VLC.

Gibt's für alle üblichen OS...

Beitrag #6393831 wurde vom Autor gelöscht.
von Taucher (Gast)


Lesenswert?

c-hater schrieb:
> Die beste Lösung ist also: Zum Abspielen was verwenden, was nahezu jeden
> Container und nahezu jeden Codec kennt: VLC.

Tut leider auch nicht:
1
Codec not supported:
2
VLC could not decode the format "av01" (AOMedia's AV1 Video)

Ein av01-Codec habe ich noch nicht gefunden.

VLC spielt aber wenigstens den Ton ab. (Audacity kann das auch.)

von babooshka (Gast)


Lesenswert?

Taucher schrieb:

stimmt decodieren kann er nicht, sorry.

>> Container und nahezu jeden Codec kenn
> Tut leider auch nicht:
>
1
> Codec not supported:
2
> VLC could not decode the format "av01" (AOMedia's AV1 Video)
3
>
>
> Ein av01-Codec habe ich noch nicht gefunden.
>

DEBIAN:  libaom-dev

https://packages.debian.org/search?keywords=libaom&searchon=names&suite=all&section=all
https://www.deb-multimedia.org/dists/stretch-backports/main/binary-armel/package/libaom-dev

ein ffmpeg z.B. müsste aber neu gebaut werden, wenn es nichts aktuelles 
im repository gibt :/
http://trac.ffmpeg.org/wiki/Encode/AV1
 kann mich dunkel erinnern das vor ~10 Jahren auch mal mit x264 gemacht 
zu haben, zu vlc kann ich nichts sagen.


---
https://aomedia.googlesource.com/aom

von babooshka (Gast)


Lesenswert?

>> Ein av01-Codec habe ich noch nicht gefunden.
>>

vlt. hast du ihn auch schon gefunden;
https://www.videolan.org/projects/dav1d.html


>
> DEBIAN:  libaom0 libaom-dev
...
>
> 
https://packages.debian.org/search?keywords=libaom&searchon=names&suite=all&section=all
> www.deb-multimedia.org/dists/stretch-backports/main/binary-armel/package 
/libaom-dev
>

da gehts zum stretchbackport den packages.debian.org nicht auflistet
www.deb-multimedia.org/dists/stretch-backports/main/.....


> ---
> https://aomedia.googlesource.com/aom

von tux (Gast)


Lesenswert?

Taucher schrieb:
> Ubuntu 7.5.0-3ubuntu1~18.04

>Gibt es eine andere Möglichkeit?

Auf 20.04LTS upgraden?

von rbx (Gast)


Lesenswert?

Taucher schrieb:
> Ich möchte ein mkv-Video ins mp4-Format wandeln. Laut
> https://www.putorius.net/convert-mkv-to-mp4-linux.html soll das so mit
> ffmpeg gehen:

Bei solchen (und von der Schwierigkeit ähnlichen) Fragen ist es (m.E.) 
bei Linux ratsam, bei

https://askubuntu.com/questions/50433/how-to-convert-mkv-file-into-mp4-file-losslessly
https://wiki.ubuntuusers.de/Codecs/

askubuntu bzw. dem Ubuntu-Wiki nachzuschauen.

Meistens werden problematische Hintergründe mitangesprochen.

von c-hater (Gast)


Lesenswert?

Taucher schrieb:

> Tut leider auch nicht:
>
1
> Codec not supported:
2
> VLC could not decode the format "av01" (AOMedia's AV1 Video)
3
>

Dann nimm' halt einfach 'ne aktuelle Version des VLC.

von Taucher (Gast)


Lesenswert?

c-hater schrieb:
> Dann nimm' halt einfach 'ne aktuelle Version des VLC.

Das hilft auch nix. VLC 3.0.8 zeigt dieselbe Fehlermeldung, wie die 
Origina-Mint-19-Version und spielt nur den Ton ab.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

In dem Falle wirst Du das mit mplayer/mencoder umwandeln müssen.

https://www.nrwision.de/mitmachen/wissen/videoformate-vergleich/

Weitere Codecs nachinstallieren:

https://pinguin.gws2.de/ubuntu-codecsammlung-installieren-alle-videoformate-abspielen/

von babooshka (Gast)


Lesenswert?

Taucher schrieb:
> c-hater schrieb:
>> Dann nimm' halt einfach 'ne aktuelle Version des VLC.
>
> Das hilft auch nix. VLC 3.0.8 zeigt dieselbe Fehlermeldung, wie die
> Origina-Mint-19-Version und spielt nur den Ton ab.


deshalb ja der decoder:
https://www.videolan.org/projects/dav1d.html

zu Fuß
tar -xJf oder unzx dav1d-xxx.tar.xz
/dav1d-0.x.x/README.md

o.

hat das Ding (noch) snap?
https://snapcraft.io/install/dav1d/ubuntu

https://www.reallinuxuser.com/how-to-use-snap-in-linux-mint/

o. ...



----
gibts evtl einen greifbaren ffmpeg4.1?



EOT

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Taucher schrieb:
> c-hater schrieb:
>> Dann nimm' halt einfach 'ne aktuelle Version des VLC.
>
> Das hilft auch nix. VLC 3.0.8 zeigt dieselbe Fehlermeldung, wie die
> Origina-Mint-19-Version und spielt nur den Ton ab.

Ich glaube auch das ist noch zu alt.

AV1 ist halt schon was sehr neues. Auf debian buster gibts 
vlc-plugin-base (3.0.11-0+deb10u1), und in bullseye
 3.0.11.1-1. Nur bei der 3.0.11.1-1 version gibts da ne dependency zu 
libdav1d4 fürs dekodieren von AV1: 
https://packages.debian.org/bullseye/vlc-plugin-base
Wobei die 3.0.11-0+deb10u1 das über ne andere lib auch können sollte, 
vermutlich über die libavcodec58 von ffmpeg.

So oder so, schau mal mit "apt-get depends vlc-plugin-base" nach, ob da 
libdav1d4 darunter ist, und wenn nicht, ist das zumindest nicht ideal.

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Sorry, meinte "apt-cache depends vlc-plugin-base"

von Taucher (Gast)


Lesenswert?

🐧 DPA 🐧 schrieb:
> ob da
> libdav1d4 darunter ist, und wenn nicht, ist das zumindest nicht ideal

Die Abhängigkeit fehlt. Wo gibts denn eine neuere Version von VLC für 
Linux Mint?

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Mit mint kenne ich mich auch nicht besonders gut aus. Linux mint baut 
auf Ubuntu auf. Welche Mint Version auf welche Ubuntu Version geht 
konnte ich auf die schnelle nirgens finden.

Bei dir geht es vermutlich auf Ubuntu bionic, dort ist die Version 3.0.8 
drin, die weder libdav1d4 noch libaom0: 
https://packages.ubuntu.com/bionic/vlc-plugin-base

Bei Ubuntu Focal wäre 3.0.9.2-1 drinn, mit libaom0, und bei groovy 
3.0.11.1-1, mit libdav1d4, aber einfach so umstellen kann man das 
vermutlich nicht, sonst geht vermutlich das mint kaputt, da müsste man 
sonst auch mint hochstellen, falls es da schon ein entsprechend neues 
Release gibt.

Ich würde es von Debian holen, das ist aber auch etwas tricky. Man kann 
es nicht einfach so einbinden, sondern muss da apt pinning machen. 
Debian, damit das pinning beim nächsten Mint upgrade hoffentlich keine 
Probleme macht, bei Ubuntu könnte man sich dort sonst versehentlich beim 
upgrade die Ubuntu Packete wegpinnen, wenn mint auf die gepinnte Version 
wechselt.

Ein gewisses Risiko, dass da was kaputt geht, gibt es aber trotzdem.

Vor dem ganzen, erst mal alles updaten:
1
apt-get update
2
apt-get upgrade
3
apt-get dist-upgrade

Dann muss erstmal verhindert werden, dass Packete von dort automatisch 
installiert/geupdated werden. Dafür eine Datei 
/etc/apt/preferences.d/10-debian anlegen mit folgendem Inhalt:
1
Package: *
2
Pin: release n=bullseye
3
Pin-Priority: 300

Dann das Debian Repo hinzufügen. Dafür eine Datei 
/etc/apt/sources.list.d/debian.list mit folgendem Inhalt anlegen:
1
deb http://deb.debian.org/debian bullseye main contrib non-free

Es ist zu beachten, dass falls man z.B. das bullseye-updates repo oder 
so noch dazu nimmt, muss das auch beim pinning ergänzt werden.

Jetzt muss man das ganze aber erstmal testen.
Bei einem Update sollten nun keine Packete zum updaten da sein !!
Andernfalls abbrechen, und Änderungen oben rückgängig machen. Updaten 
mit:
1
apt-get update
2
apt-get upgrade

Wenn das alles soweit funktioniert hat, müsste man die neuere Version 
eigentlich wie folgt installieren können:
1
apt-get install -t n=bullseye vlc

Eventuell die Packetliste kontrollieren, insbesondere, dass es nichts 
deinstalliert, und nicht das halbe System ersetzt. Ob man und woher man 
dann später Updates für VLC erhält, bin ich mir gerade nicht sicher. Mit 
der Zeile oben kann man das manuell machen, wenn nötig. Man könnte 
vermutlich auch VLC (und seine Abhängigkeiten?) auf 500 pinnen, so dass 
ein "apt-get install vlc" und "apt-get upgrade" jeweils die neuste VLC 
Version unabhängig vom Repo hohlt, aber das ist mir dann schon etwas zu 
komplex.

von Taucher (Gast)


Lesenswert?

Es ist wohl risikoloser, ein Linux, für das es das passende VLC gibt, in 
eine virtuelle Maschine zu installieren.

Kann jemand mit einem aktuellen Mint mal die Version des dort 
verwendeten VLC abfragen?

von Schlaumaier (Gast)


Lesenswert?

Video demuxen. Dann schauen was da für ein Format drin ist. In einen 
Avi-Container wieder muxxen und das wars. Notfalls umwandeln.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Ob AV1 überhaupt funktioniert, läßt sich mit Demos von folgender Seite 
ausprobieren:
https://www.elecard.com/videos

VLC media player 3.0.11 Vetinari (revision 3.0.11-0-gdc0c5ced72)
- Kann zumindest AV1 abspielen. Flüssiger als ffplay.

ffplay -version
ffplay version 4.1.6-1~deb10u1+rpt1 Copyright (c) 2003-2020 the FFmpeg 
developers
built with gcc 8 (Raspbian 8.3.0-6+rpi1)
- ffplay kann es auch abspielen, ist aber nicht flüssig.


MPlayer 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
- Kann den webm-Container noch nicht.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Nimm handbrake.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.