Vraag Hoe te converteren. Mkv bestand naar .mp4 bestand zonder verlies?


Ik moet een videobestand van Matroska-container omzetten in mp4-container. Het Matroska-bestand bevat één h.264-videotrack en één AC3-soundtrack. Het zou mogelijk moeten zijn om dit verliesloos te doen, maar hoe het te doen met de inheemse Ubuntu-tools?

Transcoderen is geen optie.


104
2018-06-24 23:22


oorsprong


Zie dit vraag. - Binarylife
dit is vooral een oplossing voor het converteren van Matroska-bestanden die niet op een Samsung-tv worden afgespeeld, naar bestanden die daarmee compatibel zijn - knocte
In de loop der jaren heb ik dit zeer nuttig als gevonden Chromecast ondersteuningen H.264 met AAC of MP3 in een MP4 container. Het is heel eenvoudig om video's van uw computer naar te streamen Chromecast als u Chrome heeft met de Google Cast-extensie. Sleep gewoon een MP4 met correcte stream-coderingen naar een browservenster en begin met streamen. - Seppo Erviälä


antwoorden:


Misschien is de gemakkelijkste tool daarvoor ffmpegof avconv van de libav-tools pakket. Libav is een vork van FFmpeg, waar Ubuntu voor een paar jaar op overstapte tot Ubuntu 15.04. Het is een van de backends voor veel van de GUI-tools die in andere antwoorden worden genoemd.

Het veranderen van container zonder opnieuw vast te houden inhoud kan niet eenvoudiger:

ffmpeg -i input.mkv -codec copy output.mp4
  • Het detecteert automatisch een containerconversie van Matroska naar MP4 op basis van invoer- / uitvoerbestandsnamen.

  • -codec copy stream kopieën of "re-muxes", de streams van de invoer naar de uitvoer zonder opnieuw te coderen. Zie het als een kopie en plak.

  • Standaardstreamselectiegedrag is om slechts één stream per streamtype te selecteren. Als uw invoer bijvoorbeeld twee videostreams en één audiostream heeft, wordt alleen de videostream met de grootste framegrootte geselecteerd. Toevoegen -map 0 als u alle streams van de invoer wilt selecteren.

  • Sommige containers ondersteunen sommige indelingen mogelijk niet. Controleer dus of je bent gekozen houder formaat, of het nu is mkv, mp4 of zelfs avi heeft ondersteuning voor alle inhoud in uw bestanden (video, audio, ondertitels, gegevens, enz.). Bijvoorbeeld, mp4 ondersteunt SubRip-ondertitels niet (.srt bestanden).


136
2017-10-01 23:59



Om de audio naar AAC te transcoderen en de video als AVC te laten: avconv -i input.mkv -c:v copy -c:a libfaac output.mp4 (Ik heb ffmpeg gebruikt, ik neem aan dat avconv dezelfde opdrachtregel-argumenten hier heeft) - camh
@camh: wat je zei werkt, maar let op 2 dingen: 1) Het laat video's zoals het is, ongeacht of het AVC is of iets anders; 2) Het zal niet alleen audio naar AAC converteren, maar ook het containerformaat van mkv naar mp4 - MestreLion
@AquariusPower: houd er rekening mee dat OP niet de streams opnieuw wil toewijzen: hij wil alleen de container converteren en alle streams behouden. - MestreLion
@AquariusPower: heb je eenvoudig geprobeerd met -map 0 om beide audiostreams te krijgen? Zoals ik al zei in het antwoord: "Standaardselectiegedrag voor streams is om slechts één stream per streamtype te selecteren" - MestreLion
Gebruik -c:s mov_text optie als u bijvoorbeeld wilt behouden. srt ondertitelspoor. - Seppo Erviälä


Krijg de benodigde software

sudo apt-get install gpac mkvtoolnix

Video en audio uit het Matroska-bestand extraheren

Eerst moet je controleren met welke tracks het matroska-bestand bevat

mkvmerge --identify video.mkv

File 'video.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AC3)

Pak vervolgens video en audio uit volgens hun tracks met:

mkvextract tracks video.mkv 1:video.h264 2:audio.ac3

Extracting track 1 with the CodecID 'V_MPEG4/ISO/AVC' to the file 'video.h264'. Container format: AVC/h.264 elementary stream
Extracting track 2 with the CodecID 'A_AC3' to the file 'audio.ac3'. Container format: Dolby Digital (AC3)
Progress: 100%

Mux audio en video in mp4 containter

MP4Box -fps 24 -add video.h264 -add audio.ac3 video.mp4

AVC-H264 import - frame size 1280 x 720 at 24.000 FPS
Import results: 31671 samples - Slices: 5672 I 125048 P 122648 B - 32288 SEI - 4936 IDR
AC3 import - sample rate 48000 - 6 channels
Saving to video.mp4: 0.500 secs Interleaving

Ik moest toevoegen -fps 24 optie omdat MP4Box detecteerde video-fps niet correct. Afhankelijk van het gebruik AC3 audiotrack moet vóór het muxen opnieuw worden gecodeerd in iets anders.

Nu hebt u streams van matroska-container in mp4-container geremuxed zonder kwaliteit te verliezen.

BEWERK: MP4 ondersteunt officieel geen AC3-audio, dus de audiotrack moet worden geconverteerd naar een ondersteund formaat (bijvoorbeeld AAC, MP3) als u wilt dat het bestand kan worden afgespeeld met iets anders dan VLC.


24
2018-06-25 11:03



Werkt dit met ondertitelsporen? - CyberSkull


U kunt Avidemux gebruiken

Het heeft een goede GUI-interface.

Bij het converteren van mkv naar mp4 wordt het niet opnieuw gecodeerd.

De conversie gebeurt binnen een minuut (voor een video van 60 minuten).

  1. sudo apt-get install avidemux

  2. Open het mkv-bestand in avidemux.

  3. Selecteer veilige modus als daarom wordt gevraagd.

  4. Verlaat de video als kopie.

  5. Kies Bestand-> Eigenschappen. Controleer of de audiocodec is aac.

    1. Als audiocodec NIET aac is, selecteert u aac(faac).
    2. Anders laat u het zo copy. (Soms gebruikt deze optie de audio niet synchroon of vervormd zijn, selecteer in dat geval aac(faac) in plaats daarvan.)
  6. kiezen mp4 voor formaat.

  7. Selecteer opslaan, kies locatie en typ een bestandsnaam met .mp4 als de extensie.

Notitie: Soms (~ 10% kans) kan het mislukken. Gebruik dan handbrake(re-encode).

Opmerking 2: er zijn twee links die u helpen:

http://www.ubuntugeek.com/avidemux-free-video-editor-designed-for-simple-cutting-filtering-and-encoding-tasks.html

http://www.ubuntugeek.com/how-to-convert-mkv-file-into-mp4-file-using-avidemux.html


12
2017-08-03 16:43



Werkte als een charme. Ik had synchronisatieproblemen na het geaccepteerde antwoord, maar niet met deze. - moraes
werkt heel goed - psychok7


enter image description here

Je kunt mijn applicatie gebruiken, dmMediaConverter. Ga gewoon weg "kopiëren"voor beide aangevinkte stromen (geen transcodering) en zet .mp4 naar de naam van het uitvoerbestand. Dat is het. Erg makkelijk. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html


2
2018-06-21 06:17





Aangezien MPEG Part 14 native h.264 en AC3 ondersteunt zonder transcodering, kunt u eenvoudig het bestand hernoemen, zodat het een .mp4 extensie in plaats van een .mkv uitbreiding.


-2
2017-12-26 15:21



Het ondersteunt mogelijk de codecs binnen, maar dat betekent niet dat het zal werken in een applicatie die Matroska niet begrijpt. Dit zou alleen werken als de applicatie Matroska ondersteunt en kijkt naar het magische nummer in plaats van de extensie. - Arda Xi
Als u het bestand hernoemt, wordt de container-indeling niet geconverteerd en kan de toepassing (en gebruikers) hierdoor worden verward. Zoals @ArdaXi zei, zou de applicatie Matroska nog moeten ondersteunen om het te spelen. - MestreLion


Je kan het proberen HANDREM door zijn PPA toe te voegen door deze code in de terminal te typen:

sudo add-apt-repository ppa:stebbins/handbrake-releases

-2
2018-06-25 03:13



Dit lijkt een video transcoder te zijn. Ik wil de videotrack niet opnieuw comprimeren omdat deze al in h.264-indeling is. - Seppo Erviälä
Handrem is een geweldige transcoder, maar ik zou het nooit gebruiken voor het converteren van bestandsformaten. - CyberSkull
Ik ben helemaal weg van Handbreak, maar werkt helaas alleen maar losslessly voor audio (en ondertitels). Ik kon geen manier vinden om de video te kopiëren zonder deze te transcoderen, en de OP vroeg met name om een ​​conversie zonder verliesformaten. - MestreLion