FFmpeg 的输出源文件和输出文件的元数据参数解释

51 min read
ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with Apple clang version 14.0.0 (clang-1400.0.29.202)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/5.1.2_5 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/pan/Downloads/IMG_2512.MOV':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2023-05-08T02:25:11.000000Z
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone SE (2nd generation)
    com.apple.quicktime.software: 16.2
    com.apple.quicktime.creationdate: 2023-05-08T10:25:10+0800
  Duration: 00:23:24.94, start: 0.000000, bitrate: 8013 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1080, 7776 kb/s, 30 fps, 30 tbr, 600 tbn (default)
    Metadata:
      creation_time   : 2023-05-08T02:25:11.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : HEVC
    Side data:
      displaymatrix: rotation of -90.00 degrees
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 190 kb/s (default)
    Metadata:
      creation_time   : 2023-05-08T02:25:11.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](und): Data: none (mebx / 0x7862656D) (default)
    Metadata:
      creation_time   : 2023-05-08T02:25:11.000000Z
      handler_name    : Core Media Metadata
  Stream #0:3[0x4](und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2023-05-08T02:25:11.000000Z
      handler_name    : Core Media Metadata
  Stream #0:4[0x5](und): Data: none (mebx / 0x7862656D), 34 kb/s (default)
    Metadata:
      creation_time   : 2023-05-08T02:25:11.000000Z
      handler_name    : Core Media Metadata
Stream mapping:
  Stream #0:1 -> #0:0 (aac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to 'output_20230509091316.mp3':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    com.apple.quicktime.creationdate: 2023-05-08T10:25:10+0800
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone SE (2nd generation)
    com.apple.quicktime.software: 16.2
    TSSE            : Lavf59.27.100
  Stream #0:0(und): Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      creation_time   : 2023-05-08T02:25:11.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.37.100 libmp3lame
size=   32931kB time=00:23:24.97 bitrate= 192.0kbits/s speed=65.4x
video:0kB audio:32930kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.002906%
The duration of the audio file is: 1404.995918 seconds.
(base)  pan@pan  ~/Desktop/convert  open .
(base)  pan@pan  ~/Desktop/convert  ./video.sh /Users/pan/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/8b2300334491b96224ec67555c5ba11c/Message/MessageTemp/ff16643b226067ea8b5d7ef2c256e025/File/致远路与芳华路交叉口东100米 37.m4a
Usage: ./video.sh video_file
(base)  ✘ pan@pan  ~/Desktop/convert  /Users/pan/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/8b2300334491b96224ec67555c5ba11c/Message/MessageTemp/ff16643b226067ea8b5d7ef2c256e025/File/1.m4a
(base)  ✘ pan@pan  ~/Desktop/convert 
(base)  ✘ pan@pan  ~/Desktop/convert  ./video.sh /Users/pan/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/8b2300334491b96224ec67555c5ba11c/Message/MessageTemp/ff16643b226067ea8b5d7ef2c256e025/File/1.m4a
Usage: ./video.sh video_file
(base)  ✘ pan@pan  ~/Desktop/convert  ./video.sh /Users/pan/Desktop/1.m4a
ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with Apple clang version 14.0.0 (clang-1400.0.29.202)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/5.1.2_5 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/pan/Desktop/1.m4a':
  Metadata:
    major_brand     : M4A
    minor_version   : 0
    compatible_brands: M4A isommp42
    creation_time   : 2023-02-19T07:02:26.000000Z
    title           : test 37
    voice-memo-uuid : C086395A-9023-4EC3-A6E9-509F6FF1656A
    encoder         : com.apple.VoiceMemos (iPhone Version 16.2 (Build 20C65))
  Duration: 02:49:05.96, start: 0.000000, bitrate: 66 kb/s
  Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 62 kb/s (default)
    Metadata:
      creation_time   : 2023-02-19T07:02:26.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to 'output_20230509091524.mp3':
  Metadata:
    major_brand     : M4A
    minor_version   : 0
    compatible_brands: M4A isommp42
    voice-memo-uuid : C086395A-9023-4EC3-A6E9-509F6FF1656A
    TIT2            : 致远路与芳华路交叉口东100米 37
    TSSE            : Lavf59.27.100
  Stream #0:0(und): Audio: mp3, 48000 Hz, mono, fltp, 192 kb/s (default)
    Metadata:
      creation_time   : 2023-02-19T07:02:26.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.37.100 libmp3lame
size=  201472kB time=02:23:25.36 bitrate= 191.8kbits/s speed= 134x

这段代码是 FFmpeg 的输出,它详细地描述了源文件和输出文件的元数据,以及转换过程。这是一个强大的开源工具,用于处理多媒体数据,例如音频,视频和图像。下面是对关键参数的解释:

  1. ffmpeg version 5.1.2: 表示正在使用的 FFmpeg 的版本是 5.1.2。
  2. built with Apple clang version 14.0.0: 表示该 FFmpeg 版本是用 Apple 的 clang 编译器版本 14.0.0 构建的。
  3. configuration: --prefix=/usr/local/Cellar/ffmpeg/5.1.2_5 --enable-shared...:这是编译 FFmpeg 时使用的配置选项,包括指定安装位置、启用的库和功能等。
  4. libavutil, libavcodec, libavformat, libavdevice, libavfilter, libswscale, libswresample, libpostproc:这些是 FFmpeg 的主要库,显示了它们的版本信息。
  5. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/pan/Desktop/1.m4a': 表示输入的文件路径和文件格式。
  6. Duration: 02:49:05.96, start: 0.000000, bitrate: 66 kb/s: 表示输入文件的总时长、起始时间和比特率。
  7. Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 62 kb/s (default): 表示输入文件的音频流信息,包括编码格式(AAC)、采样率(48000Hz)、声道(mono)、样本格式(fltp)和比特率(62 kb/s)。
  8. Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame)): 描述了从输入流到输出流的映射,这里是将 AAC 格式的音频转换为 MP3 格式。
  9. Output #0, mp3, to 'output_20230509091524.mp3': 表示输出的文件格式和文件路径。
  10. Stream #0:0(und): Audio: mp3, 48000 Hz, mono, fltp, 192 kb/s (default): 表示输出文件的音频流信息,包括编码格式(MP3)、采样率(48000Hz)、声道(mono)、样本格式(fltp)和比特率(192 kb/s)。
  11. size= 201472kB time=02:23:25.36 bitrate= 191.8kbits/s speed= 134x: 提供了转换完成后的输出文件大小、时长、比特率和转换速度。

FFmpeg 是一个非常复杂的工具,以上只是其参数的一部分解释。具体的参数和选项可能因使用的库、功能以及 FFmpeg 的版本而异。

让我用一些简单易懂的语言来解释这些术语:

  1. 编码格式(AAC):你知道吗,音乐和声音在电脑或手机里是以特殊的方式存储的,我们叫做编码。编码就好比是一种语言,电脑或手机通过这种语言理解音乐和声音。AAC就是一种编码格式,就像我们人类可以说英语、中文或者法语一样,电脑也可以用AAC、MP3等不同的“语言”来理解音乐和声音。

  2. 采样率(48000Hz):你玩过“跳一跳”这个游戏吗?你每跳一次,就像是在采样一次。采样率就是电脑在一秒钟内“跳”了多少次来记录音频。48000Hz就意味着电脑每秒钟跳了48000次,也就是每秒钟记录了48000个音频样本。采样率越高,音频的质量就越好。

  3. 声道(mono):你知道立体声音乐吗?如果你戴着耳机,有时你会发现左边耳机和右边耳机的声音不一样,这就是因为它们是立体声,或者叫做双声道。但如果无论你是左耳听还是右耳听,听到的声音都一样,那就是单声道(mono)了。

  4. 样本格式(fltp):这是电脑用来存储音频样本的一种方式,fltp是一种浮点类型的样本格式。这个可能有点难理解,你只需要知道这是电脑用来更精确地记录音频信息的一种方式就可以了。

  5. 比特率(62 kb/s):比特率就像是音乐的“体重”。比特率越高,音乐“体重”越重,也就意味着音质越好,但同时也需要更多的存储空间。你可以把比特率理解为音乐的“密度”,62 kb/s就表示每秒的音乐数据有62千比特。