如何从 MKV 文件中提取视频、音频和字幕文件

如何从 MKV 文件中提取视频、音频和字幕文件

我有一些 MKV 视频文件,我想提取(而不是转换)内部文件(视频、音频和字幕)。

我认为 MKVToolNix GUI 是适合执行此操作的应用程序,但是...我找不到任何按钮来执行该操作!

当然,MKVToolNixGUI 向我展示了单个文件,但是...我唯一的选择是再次将其保存为 MKV 文件!

所以...

我以为 WinFF 可以帮助我,但是...我无法从 MKV 容器中的内部文件中进行选择,所以...我只能获得主视频和音频文件,而没有字幕。

所以...

我以为一些压缩文件提取器可以有所帮助,但是......一点也没有!

所以...

还有其他方法或应用程序可以实现这个吗?

我坚持说我不想转换任何东西,我只想得到分离的文件(视频、音频和字幕)并以这种分离的方式使用它。

答案1

这将从 mkv 文件中提取音频

ffmpeg -i /tmp/dolbycanyon.m4v -vn -acodec copy /tmp/dolbycanyon.aac

在运行上述操作之前,你可以显示输入视频文件的详细信息

ffprobe  /tmp/dolbycanyon.m4v 

# ... output

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/dolbycanyon.m4v':
  Metadata:
    major_brand     : M4V 
    minor_version   : 512
    compatible_brands: isomiso2avc1
    encoder         : Lavf57.66.105
  Duration: 00:00:38.07, start: 0.000000, bitrate: 663 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 8:9 DAR 4:3], 313 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 341 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

此处显示最终输出的音频详细信息

ffprobe  /tmp/dolbycanyon.aac 

ffprobe version 4.2.1-2ubuntu1 Copyright (c) 2007-2019 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.2.1-21ubuntu1)
  configuration: --prefix=/usr --extra-version=2ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[aac @ 0x563336f5cc40] Estimating duration from bitrate, this may be inaccurate
Input #0, aac, from '/home/pie/Downloads/dolbycanyon.aac':
  Duration: 00:00:41.70, bitrate: 313 kb/s
    Stream #0:0: Audio: aac (LC), 48000 Hz, 5.1, fltp, 313 kb/s

相关内容