[RISOLTO] Aiuto su mkvextract (estrazione audio da file mkv)

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

[RISOLTO] Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

Salve a tutti ragazzi e ben ritrovati.
Ho acquistato anni fa dei Blu-ray audio di alcuni dei miei dischi preferiti e mi piacerebbe estrarne il contenuto 5.1 in modo tale da caricare i file, in formato flac, sul mio NAS.
La libreria musicale la gestisco tramite Roon.
Quello che ho fatto finora è stato estrarre il contenuto dei capitoli che mi interessavano grazie a MakeMKV il quale mi ha creato un file mkv unico contenente le tracce ed un'interfaccia grafica basilare.
Per estrarre il contenuto dei singoli brani ho pensato di usare mkvextract.
Questa è la struttura del file mkv in questione:

Codice: Seleziona tutto

CHAPTER01=00:00:00.000
CHAPTER01NAME=Capitolo 01
CHAPTER02=00:00:01.001
CHAPTER02NAME=Capitolo 02
CHAPTER03=00:05:03.303
CHAPTER03NAME=Capitolo 03
CHAPTER04=00:09:02.542
CHAPTER04NAME=Capitolo 04
CHAPTER05=00:11:57.717
CHAPTER05NAME=Capitolo 05
CHAPTER06=00:15:39.939
CHAPTER06NAME=Capitolo 06
CHAPTER07=00:20:09.208
CHAPTER07NAME=Capitolo 07
CHAPTER08=00:23:46.425
CHAPTER08NAME=Capitolo 08
CHAPTER09=00:26:55.614
CHAPTER09NAME=Capitolo 09
CHAPTER10=00:30:59.858
CHAPTER10NAME=Capitolo 10
CHAPTER11=00:34:51.089
CHAPTER11NAME=Capitolo 11
CHAPTER12=00:38:22.300
CHAPTER12NAME=Capitolo 12
CHAPTER13=00:42:09.527
CHAPTER13NAME=Capitolo 13
CHAPTER14=00:46:15.773
CHAPTER14NAME=Capitolo 14
CHAPTER15=00:49:39.977
CHAPTER15NAME=Capitolo 15
CHAPTER16=00:53:30.207
CHAPTER16NAME=Capitolo 16
CHAPTER17=00:57:28.445
CHAPTER17NAME=Capitolo 17
CHAPTER18=01:00:22.619
CHAPTER18NAME=Capitolo 18
CHAPTER19=01:05:31.928
CHAPTER19NAME=Capitolo 19
Ottenute queste informazioni mi blocco, per meglio dire non riesco a capire come fare per estrarre le diciannove canzoni che compongono il Blu-ray originario.
Ho dato una scorsa alla documentazione di mkvextract ma mi sono perso dietro a trackid e problematiche varie.
Qualcuno mi aiuterebbe a capirci qualcosa?
Grazie...
Ultima modifica di Burroughs il dom 30 apr 2023, 18:28, modificato 1 volta in totale.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da joe »

Codice: Seleziona tutto

mkvinfo
Dovrebbe darti informazioni sulle tracce presenti, in particolare l'ID della singola traccia.

Poi estrai la traccia con mkvextract (dall'help del comando):

Codice: Seleziona tutto

mkvextract "a movie.mkv" tracks 2:audio.ogg -c ISO8859-1 3:subs.srt
Ovvio che nell'esempio devi sapere che all'ID 2 corrisponde la traccia giusta...
Purtroppo non ho un file su cui testare la cosa e dal man e help vari manca un esempio concreto per passare direttamente alle tracce FLAC.

https://man.archlinux.org/man/mkvextract.1.en

Dove si legge:
A_FLAC
FLAC tracks are written to raw FLAC files.
Non ho ben capito come passare quella roba sulla linea di comando ma va be'. Avendo il file di partenza se fai qualche prova dovresti riuscire a capire come funziona in pratica.
Può anche darsi che la conversione in FLAC non te la faccia direttamente mkvextract e che quello lo sopra sia semplicemente i codice per identifiare il formato FLAC, ma nel file di input...

Se vuoi postare l'out di mkvinfo si capisce meglio con cosa abbiamo a che fare...
Ultima modifica di joe il mer 26 apr 2023, 20:47, modificato 1 volta in totale.

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

Grazie, Joe, come al solito.
mkvinfo mi genera, redirigendogli l'output, un file di 78,8MB (!!!).
Ovviamente, non lo posso postare tutto qui; i punti salienti sono:

Codice: Seleziona tutto

+ Tracks
| + Track
|  + Track number: 1 (track ID for mkvmerge & mkvextract: 0)
|  + Track UID: 1
|  + Track type: video
|  + "Default track" flag: 0
|  + "Lacing" flag: 0
|  + Minimum cache: 1
|  + Codec ID: V_MPEG4/ISO/AVC
|  + Codec's private data: size 62 (H.264 profile: High @L4.1)
|  + Default duration: 00:00:00.041708333 (23.976 frames/fields per second for a video track)
|  + Video track
|   + Pixel width: 1920
|   + Pixel height: 1080
|   + Display width: 1920
|   + Display height: 1080
| + Track
|  + Track number: 2 (track ID for mkvmerge & mkvextract: 1)
|  + Track UID: 2
|  + Track type: audio
|  + "Default track" flag: 1
|  + "Lacing" flag: 0
|  + Codec ID: A_PCM/INT/LIT
|  + Language: eng
|  + Default duration: 00:00:00.033333333 (30.000 frames/fields per second for a video track)
|  + Name: Stereo
|  + Audio track
|   + Sampling frequency: 96000
|   + Channels: 2
|   + Bit depth: 24
Dopo le prime sei tracce (i brani, però, sono 19) è tutto un fiorire di

Codice: Seleziona tutto

Chapters
| + Edition entry
|  + Edition flag hidden: 0
|  + Edition flag default: 1
|  + Edition UID: 9173873739875265821
|  + Chapter atom
|   + Chapter UID: 9007207156553679292
|   + Chapter time start: 00:00:00.000000000
|   + Chapter flag hidden: 0
|   + Chapter flag enabled: 1
|   + Chapter time end: 00:00:01.001000000
|   + Chapter display
|    + Chapter string: Capitolo 01
|    + Chapter language: eng
|  + Chapter atom
|   + Chapter UID: 15270242372756392847
|   + Chapter time start: 00:00:01.001000000
|   + Chapter flag hidden: 0
|   + Chapter flag enabled: 1
|   + Chapter time end: 00:05:03.303000000
|   + Chapter display
|    + Chapter string: Capitolo 02
|    + Chapter language: eng
dopodiché

Codice: Seleziona tutto

Simple block: key, track number 2, 1 frame(s), timestamp 01:09:01.433000000
|  + Frame with size 19200
| + Simple block: key, track number 3, 1 frame(s), timestamp 01:09:01.433000000
|  + Frame with size 19200
| + Simple block: key, track number 6, 1 frame(s), timestamp 01:09:01.433000000
|  + Frame with size 57600
| + Simple block: key, track number 2, 1 frame(s), timestamp 01:09:01.467000000
|  + Frame with size 19200
| + Simple block: key, track number 3, 1 frame(s), timestamp 01:09:01.467000000
|  + Frame with size 19200
| + Simple block: key, track number 6, 1 frame(s), timestamp 01:09:01.467000000
Se apro il file con makemkv mi segnala, fra le altre cose, la presenza di 19 tracce, per cui dubito abbia fatto un errore io all'atto della creazione dell'"immagine".
Lanciando questo comando:

Codice: Seleziona tutto

mkvextract "title_t02.mkv" tracks 1:audio.flac -c ISO8859-1 3:subs.srt
oltre al file dei sottotitoli, mi genera un file flac, che però non corrisponde alla traccia 2 ma all'intero contenuto del disco.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da joe »

Sinceramente non ho mai avuto a che fare con file mkv del genere, bisogna un po' vedere come lavora makemkv perché alla fine è lui che lo ha creato.
Teniamo presente che quello che noi intendiamo per traccia equivale a brano.
Mentre per i tool mkvmerge extract ecc.. per traccia si intende l'intera traccia video, l'intera traccia audio, ecc ecc...
Prova questa greppata qui sotto:

Codice: Seleziona tutto

mkvinfo input.mkv |grep "Numero traccia\|Tipo traccia\|ID codec"
Ovviamente adatta la cosa al tuo output, perché a me risponde in italiano, invece vedo che da te lo ottieni in inglese.

Codice: Seleziona tutto

grep "Track number\|Track type\|Codec ID"
In questo modo l'output dovrebbe essere postabile anche qui sul forum.

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

Ecco l'output che ottengo:

Codice: Seleziona tutto

Macandy:~ alutri$ mkvinfo Downloads/title_t02.mkv |grep "Track number\|Track type\|Codec ID"
|  + Track number: 1 (track ID for mkvmerge & mkvextract: 0)
|  + Track type: video
|  + Codec ID: V_MPEG4/ISO/AVC
|  + Track number: 2 (track ID for mkvmerge & mkvextract: 1)
|  + Track type: audio
|  + Codec ID: A_PCM/INT/LIT
|  + Track number: 3 (track ID for mkvmerge & mkvextract: 2)
|  + Track type: audio
|  + Codec ID: A_PCM/INT/LIT
|  + Track number: 4 (track ID for mkvmerge & mkvextract: 3)
|  + Track type: audio
|  + Codec ID: A_DTS
|  + Track number: 5 (track ID for mkvmerge & mkvextract: 4)
|  + Track type: audio
|  + Codec ID: A_DTS
|  + Track number: 6 (track ID for mkvmerge & mkvextract: 5)
|  + Track type: audio
|  + Codec ID: A_MS/ACM
Sono sicuro che le tracce audio si riferiscono all'album intero non ai brani singoli; quello che cambia, come si può vedere, è il formato audio (PCM e/o DTS).
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da joe »

OK, la prima è evidentemente una traccia video che puoi ignorare direi, se ti interessano le canzoni.
Le altre potresti provare ad estrarle con mkvextract.
Lì le marca tutte come tracce audio, però riportavi anche un file di sottotitoli sopra.

Ad ogni modo le tracce che estrai controllale col comando "file" per vedere precisamente cosa risulta che contengano.

Io ho trovato un'alternativa abbastanza scomoda, utilizzando ffmpeg in modo da estrarre dal tempo di inizio e fine di ogni canzone. I tempi te li suggerisce mkvinfo dal tuo output lì sopra nella sezione "chapters".
Ogni "capitolo" sarebbe una canzone se ho ben capito.
Mi sembra molto strano che non vi sia un comando pronto di mkvextract o similare del tipo estrai ogni capitolo in un file corrispondente anche lasciando intatto il codec audio utilizzato ecc...

In realtà l'estrazione con ffmpeg usando i tempi inizio e fine, credo si potesse fare anche direttamente dal bluray, ti metto questo link:
https://wiki.gentoo.org/wiki/FFmpeg_-_E ... l_Chapters

Però se ho ben capito non è una strada automatica, lì usa makemkvconv per generare diversi streams (che non sono le singole canzoni ma le tracce audio video ecc contenute nel disco.
Poi passa la traccia audio (o le tracce) che contiene le canzoni a ffprobe per ottenere i tempi inizio/fine di ogni capitolo (canzone).
Dopodiché passa manualmente questi valori a ffmpeg... c'è anche da fare la sottrazione se ho ben capito. E con questo estrae le canzoni come files WAV.
Da lì puoi convertirle in FLAC.
La procedura è facilmente automatizzabile con uno script, almeno in parte... cioè si tratta di scegliere lo stream giusto dopo averli estratti tutti, da lì in poi puoi automatizzare.
Il ché mi induce a supporre che qualche automatismo meno cervellotico sia già stato prodotto, e potrebbe trattarsi semplicemente di cercarlo già pronto.

Qua dicono anche di utilizzare l'interfaccia grafica mkvtoolnix, che dovrebbe sempre far parte del pacchetti in cui c'è mkvextract info merge ecc...
https://www.reddit.com/r/mkvtoolnix/com ... rate_file/

Ecco anche un video che credo segua la strada che hai già in parte percorso... non l'ho guardato bene, vedi un po' te:
https://www.youtube.com/watch?v=GlTFTcWEx_g

OK, facci sapere se riesci, giusto per curiosità ;)

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

Ho riprovato ad usare lo stesso comando che avevo utilizzato ieri, sicuro che non avrebbe funzionato e così è stato.
Questo è l'output:

Codice: Seleziona tutto

Macandy:Downloads alutri$ mkvextract "title_t02.mkv" tracks 4:audio.flac -c ISO8859-1 4:subs.srt
Error: The ID '4' has already been used for another destination file.
Ora, quello che penso di aver capito è che, fintantoché si lavora sul Track ID, l'eseguibile non fa altro se non estrarre l'album intero; la chiave di volta sarebbe invece poter lavorare sui capitoli, che corrispondono ai brani, con un punto di inizio ed uno di fine.
Ho provato anche ad usare un'interfaccia grafica (emulata, su Windows) ma i capitoli non li vede.
Questo fatto delle tracce/capitoli è quello che mi sta bloccando.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

[UPDATE]: grazie alla guida video che joe ha postato sono riuscito ad "isolare" alcuni capitoli (brani), ottenendo però dei file mkv.
Mi manca il passaggio finale, cioè estrarre l'audio flac dalla sorgente.
Il comando mkvextract da shell mi restituisce sempre degli errori del tipo

Codice: Seleziona tutto

Error: The ID '5' has already been used for another destination file.
mentre l'interfaccia grafica di mkvtoolnix mi sembra sia priva di mkvextract... :-k :-k :-k
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

erio
Linux 4.x
Linux 4.x
Messaggi: 1354
Iscritto il: ven 9 ott 2009, 19:25
Slackware: 13.37
Kernel: 3.0.7
Desktop: kde

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da erio »

vedi se e' utile:poi il file che viene estratto lo passi ad audacity cosi puoi splittarlo...credo

Codice: Seleziona tutto

bash-5.2# ffprobe eclipse.mkv
ffprobe version n6.0 Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 12.2.1 (GCC) 20230201
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, matroska,webm, from 'eclipse.mkv':
  Metadata:
    ENCODER         : Lavf60.3.100
  Duration: 02:01:32.12, start: 0.000000, bitrate: 934 kb/s
  Stream #0:0: Video: h264 (High), yuv420p(tv, bt470bg, bottom coded first (swapped)), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 1k tbn
    Metadata:
      ENCODER         : Lavc60.3.100 libx264
      DURATION        : 02:01:32.120000000
  Stream #0:1(ita): Subtitle: dvd_subtitle (default)
    Metadata:
      title           : Italian
      DURATION        : 02:01:28.085000000
  Stream #0:2(eng): Subtitle: dvd_subtitle
    Metadata:
      title           : English
      DURATION        : 02:00:36.721000000
  Stream #0:3(ita): Audio: mp3, 48000 Hz, stereo, fltp, 32 kb/s
    Metadata:
      title           : Italian stereo
      ENCODER         : Lavc60.3.100 libmp3lame
      DURATION        : 02:01:24.392000000
bash-5.2# ffmpeg -i  eclipse.mkv -map 0:a -acodec copy audio.mp4
ffmpeg version n6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.1 (GCC) 20230201
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, matroska,webm, from 'eclipse.mkv':
  Metadata:
    ENCODER         : Lavf60.3.100
  Duration: 02:01:32.12, start: 0.000000, bitrate: 934 kb/s
  Stream #0:0: Video: h264 (High), yuv420p(tv, bt470bg, bottom coded first (swapped)), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 1k tbn
    Metadata:
      ENCODER         : Lavc60.3.100 libx264
      DURATION        : 02:01:32.120000000
  Stream #0:1(ita): Subtitle: dvd_subtitle (default)
    Metadata:
      title           : Italian
      DURATION        : 02:01:28.085000000
  Stream #0:2(eng): Subtitle: dvd_subtitle
    Metadata:
      title           : English
      DURATION        : 02:00:36.721000000
  Stream #0:3(ita): Audio: mp3, 48000 Hz, stereo, fltp, 32 kb/s
    Metadata:
      title           : Italian stereo
      ENCODER         : Lavc60.3.100 libmp3lame
      DURATION        : 02:01:24.392000000
Output #0, mp4, to 'audio.mp4':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0(ita): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 32 kb/s
    Metadata:
      title           : Italian stereo
      ENCODER         : Lavc60.3.100 libmp3lame
      DURATION        : 02:01:24.392000000
Stream mapping:
  Stream #0:3 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=  153583kB time=02:01:24.35 bitrate= 172.7kbits/s speed=1.6e+03x     
video:0kB audio:152394kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.779643%
bash-5.2# 

                                              

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da joe »

Secondo me, così a naso sbagli il comando perché cerchi di fare due operazioni sulla stessa traccia in un colpo solo.

Prova una cosa più semplice:

Codice: Seleziona tutto

mkvextract "title_t02.mkv" tracks 4:audio.flac
Dovrebbe estrarre la traccia con ID numero "4" del file di input in un file di output chiamato audio.flac.
A quel punto lancia:

Codice: Seleziona tutto

file audio.flac
E dovresti verificare che in realtà non si tratta di un FLAC... ma su questo punto non sono sicuro, posso sbagliarmi.

PS.
L'interfaccia mkvtoolnix dovrebbe avere tutto, se mai è mkvextract che è più specifico e fa solo alcune operazioni mirate. Sono di fatto lo stesso programma, cioè la GUI chiama i vari comandi mkvextract mkvmerge mkvinfo e così via. Casomai dopo faccio una prova con un mkv di test...

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

Più o meno ci siamo, joe: ho estratto il flac dal file mkv!
Queste le informazioni che mi vengono restituite:

Codice: Seleziona tutto

Macandy:Downloads alutri$ mdls audio.flac 
_kMDItemDisplayNameWithExtensions  = "audio.flac"
kMDItemContentCreationDate         = 2023-04-27 13:49:28 +0000
kMDItemContentCreationDate_Ranking = 2023-04-27 00:00:00 +0000
kMDItemContentModificationDate     = 2023-04-27 13:49:28 +0000
kMDItemContentType                 = "org.xiph.flac"
kMDItemContentTypeTree             = (
    "org.xiph.flac",
    "public.audio",
    "public.audiovisual-content",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded                   = 2023-04-27 13:49:28 +0000
kMDItemDisplayName                 = "audio.flac"
kMDItemDocumentIdentifier          = 0
kMDItemFSContentChangeDate         = 2023-04-27 13:49:28 +0000
kMDItemFSCreationDate              = 2023-04-27 13:49:28 +0000
kMDItemFSCreatorCode               = ""
kMDItemFSFinderFlags               = 0
kMDItemFSHasCustomIcon             = (null)
kMDItemFSInvisible                 = 0
kMDItemFSIsExtensionHidden         = 0
kMDItemFSIsStationery              = (null)
kMDItemFSLabel                     = 0
kMDItemFSName                      = "audio.flac"
kMDItemFSNodeCount                 = (null)
kMDItemFSOwnerGroupID              = 20
kMDItemFSOwnerUserID               = 501
kMDItemFSSize                      = 57022092
kMDItemFSTypeCode                  = ""
kMDItemInterestingDate_Ranking     = 2023-04-27 00:00:00 +0000
kMDItemKind                        = "Free Lossless Audio Codec file"
kMDItemLastUsedDate                = 2023-04-27 13:49:40 +0000
kMDItemLastUsedDate_Ranking        = 2023-04-27 00:00:00 +0000
kMDItemLogicalSize                 = 57022092
kMDItemMediaTypes                  = (
    Sound
)
kMDItemPhysicalSize                = 57024512
kMDItemUseCount                    = 1
kMDItemUsedDates                   = (
    "2023-04-26 23:00:00 +0000"
)
Lo spettrogramma, ottenuto tramite Spek, parla di "DCA (DTS Coherent Acoustics), 1536 kbps, 48000 Hz, channel 1/6".
A occhio e croce dovrebbe essere il file in Dolby Surround. ;) ;) ;)
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da joe »

Sei sicuro che il risultato sia realmente un FLAC?

E già che hai fatto 30... metti almeno i comandi che hai usato o spiega come hai fatto.
Immagino mkvextract, ma specificalo tu... per completezza così chi leggerà in futuro avrà una risposta completa.

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

Ammetto di non essere un esperto quindi invito chi fosse interessato a fare le sue prove per conto proprio.
Prima di tutto occorre estrarre i capitoli (brani) dal file mkv generato da makeMKV; la procedura viene spiegata in modo chiaro nel video su YouTube che è stato postato da joe.
Una volta che è stato ottenuto il file mkv corrispondente alla traccia desiderata occorre lanciare il seguente comando:

Codice: Seleziona tutto

mkvextract "01. Peter.mkv" tracks 4:audio.flac
Il track ID lo si ottiene lanciando mkvinfo "greppandolo" nel modo indicato da joe.
Una volta generato il file flac, l'ho affidato ad uno script python che me ne ha confermato l'autenticità (almeno, il punteggio che ho ottenuto è stato 100, quindi dovrei stare tranquillo).
Chi è più pratico può generarsi lo spettrogramma e vedere a che frequenza viene effettuato il cut-off; ci sono diversi software a tal scopo, io uso spek.
Il problema di questa procedura è che occorre rifarla per ogni singolo file che si desideri rippare; non escludo ci sia qualcuno che abbia automatizzato il tutto con uno script e/o che ci sia un workaround che impedisca di perdere tempo con l'interfaccia di mkvtoolnix.
Chi ha consigli utili è il benvenuto. :thumbright: :thumbright: :thumbright:
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da joe »

Scusa se insisto.
Il comando mkvextract non mi risulta che converta in flac.
Per quello che ti avevo chiesto l'output del comando file, che è molto più semplice e diretto di roba più tecnica.
Prova a postare l'out di sta roba se vuoi:

Codice: Seleziona tutto

$ mkvinfo 01\ Peter.mkv |grep codec -B1

$ file audio.flac
Il primo comando "entra" nel contenitore matroska e ritorna il formato della traccia audio.
Dovrebbe essere uguale a quello della traccia intera da cui hai ottenuto gli mkv delle singole canzoni con mkvtoolnix. L'avevi postata all'inizio, ma ora hai la sicurezza di interrogare il file che contiene solo la canzone d'interesse.
Insomma posta l'output così ci capiamo.

Per l'automazione... mkvtoolnix non ti crea enne files in una botta sola?
Avevo capito di sì.
Se è così, poi a lavorare i 19 files per convertirli in flac è una sciocchezza, basta una riga di bash con ffmpeg...
Piuttosto come dimensioni non sempre conviene passare in FLAC, dipende dal codec/compressione dell'audio di partenza.

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Aiuto su mkvextract (estrazione audio da file mkv)

Messaggio da Burroughs »

Allora, il primo comando che hai postato non mi restituisce nulla, il secondo mi dà questo:

Codice: Seleziona tutto

Macandy:Downloads alutri$ file audio.flac 
audio.flac: data
mkvtoolnix, se gli specifichi i capitoli interessati, sì, ti crea tutti i file in un'unica operazione, ma si tratta di file mkv che bisognerà estrarre successivamente.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Rispondi