2022年3月17日 星期四

樹莓派安裝影音格式轉換函式庫 FFmpeg

我在市圖借來的這本書第六章看到 FFmpeg :



Source : 天瓏


此書雖然有一章介紹 Python, 但那只是語法說明, 並非實際使用 Python 來實作語音辨識. 全書事實上主要是使用 Java, 不論是 FFT, MFCC, 或是深度學習都是用 Java. 雖然曾考過 SCJP, 但我這幾年改用 Python 後太久沒用 Java 了, 覺得很陌生. 

FFmpeg 是一款可以進行音訊與視訊格式轉換, 錄影, 轉檔以及串流等功能的開放原始碼函式庫, 也是知名的開源影音播放器 MPlayer 背後所使用的技術之一. FFmpeg 開頭的 "FF" 並非 Fast Fourier 的意思, 而是 "Fast Forward", 參考 :


我參考下面這篇文章, 在我的 Raspberry Pi Zero W 上成功安裝了 FFmpeg :





程序紀錄如下 : 


一. 安裝 FFmpeg 函式庫 : 

安裝所需指令有兩個 : 

sudo apt update   
sudo apt install -y ffmpeg   

注意, 指令 sudo apt update 是必要的 (用來取得最新的安裝套件列表), 必須先執行, 否則安裝 FFmpeg 時會因為找不到 libav 編解碼器安裝套鍵而失敗. 

安裝過程如下 : 

pi@raspberrypi:~ $ sudo apt update    
已有:1 http://archive.raspberrypi.org/debian buster InRelease
下載:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N] y
下載:3 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages [13.0 MB]
下載:4 http://raspbian.raspberrypi.org/raspbian buster/contrib armhf Packages [58.8 kB]
下載:5 http://raspbian.raspberrypi.org/raspbian buster/non-free armhf Packages [104 kB]
取得 13.2 MB 用了 43s (305 kB/s)
正在讀取套件清單... 完成
正在重建相依關係
正在讀取狀態資料... 完成
440 packages can be upgraded. Run 'apt list --upgradable' to see them.

安裝 FFmpeg : 

pi@raspberrypi:~ $ sudo apt install -y ffmpeg     
正在讀取套件清單... 完成
正在重建相依關係
正在讀取狀態資料... 完成
下列的額外套件將被安裝:
  libavcodec58 libavdevice58 libavfilter7 libavformat58 libavresample4
  libavutil56 libpostproc55 libswresample3 libswscale5 libwebpmux3
建議套件:
  ffmpeg-doc
下列套件將會被升級:
  ffmpeg libavcodec58 libavdevice58 libavfilter7 libavformat58 libavresample4
  libavutil56 libpostproc55 libswresample3 libswscale5 libwebpmux3
升級 11 個,新安裝 0 個,移除 0 個,有 429 個未被升級。
需要下載 14.6 MB 的套件檔。
此操作完成之後,會多佔用 318 kB 的磁碟空間。
下載:1 http://archive.raspberrypi.org/debian buster/main armhf ffmpeg armhf 7:4.1.8-0+deb10u1+rpt1 [1,437 kB]
下載:2 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libwebpmux3 armhf 0.6.1-2+deb10u1 [94.0 kB]
下載:3 http://archive.raspberrypi.org/debian buster/main armhf libavdevice58 armhf 7:4.1.8-0+deb10u1+rpt1 [157 kB]
下載:4 http://archive.raspberrypi.org/debian buster/main armhf libavfilter7 armhf 7:4.1.8-0+deb10u1+rpt1 [1,456 kB]
下載:5 http://archive.raspberrypi.org/debian buster/main armhf libswscale5 armhf 7:4.1.8-0+deb10u1+rpt1 [259 kB]
下載:6 http://archive.raspberrypi.org/debian buster/main armhf libavformat58 armhf 7:4.1.8-0+deb10u1+rpt1 [1,526 kB]
下載:7 http://archive.raspberrypi.org/debian buster/main armhf libavcodec58 armhf 7:4.1.8-0+deb10u1+rpt1 [8,938 kB]
下載:8 http://archive.raspberrypi.org/debian buster/main armhf libswresample3 armhf 7:4.1.8-0+deb10u1+rpt1 [124 kB]
下載:9 http://archive.raspberrypi.org/debian buster/main armhf libpostproc55 armhf 7:4.1.8-0+deb10u1+rpt1 [101 kB]
下載:10 http://archive.raspberrypi.org/debian buster/main armhf libavresample4 armhf 7:4.1.8-0+deb10u1+rpt1 [110 kB]
下載:11 http://archive.raspberrypi.org/debian buster/main armhf libavutil56 armhf 7:4.1.8-0+deb10u1+rpt1 [362 kB]
取得 14.6 MB 用了 7s (2,238 kB/s)
apt-listchanges: 讀取改變紀錄(changelogs)...
(讀取資料庫 ... 目前共安裝了 157416 個檔案和目錄。)
正在準備解包 .../00-ffmpeg_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking ffmpeg (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../01-libavdevice58_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libavdevice58:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../02-libavfilter7_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libavfilter7:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../03-libswscale5_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libswscale5:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../04-libavformat58_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libavformat58:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../05-libavcodec58_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libavcodec58:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../06-libswresample3_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libswresample3:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../07-libpostproc55_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libpostproc55:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../08-libavresample4_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libavresample4:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../09-libavutil56_7%3a4.1.8-0+deb10u1+rpt1_armhf.deb……
Unpacking libavutil56:armhf (7:4.1.8-0+deb10u1+rpt1) over (7:4.1.4-1+rpt7~deb10u1) ...
正在準備解包 .../10-libwebpmux3_0.6.1-2+deb10u1_armhf.deb……
Unpacking libwebpmux3:armhf (0.6.1-2+deb10u1) over (0.6.1-2) ...
設定 libavutil56:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libpostproc55:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libswscale5:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libwebpmux3:armhf (0.6.1-2+deb10u1) ...
設定 libswresample3:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libavresample4:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libavcodec58:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libavformat58:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libavfilter7:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 libavdevice58:armhf (7:4.1.8-0+deb10u1+rpt1) ...
設定 ffmpeg (7:4.1.8-0+deb10u1+rpt1) ...
執行 man-db (2.8.5-2) 的觸發程式……
執行 libc-bin (2.28-10+rpi1) 的觸發程式……

這樣 FFmpeg 就安裝完成了. 


二. 檢查 FFmpeg 版本 : 

接著用下列指令檢查 FFmpeg 版本 :

ffmpeg -version

pi@raspberrypi:~ $ ffmpeg -version    
ffmpeg version 4.1.8-0+deb10u1+rpt1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 8 (Raspbian 8.3.0-6+rpi1)
configuration: --prefix=/usr --extra-version=0+deb10u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --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-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
libavutil      56. 22.100 / 56. 22.100
libavcodec     58. 35.100 / 58. 35.100
libavformat    58. 20.100 / 58. 20.100
libavdevice    58.  5.100 / 58.  5.100
libavfilter     7. 40.101 /  7. 40.101
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  3.100 /  5.  3.100
libswresample   3.  3.100 /  3.  3.100
libpostproc    55.  3.100 / 55.  3.100

可見安裝的 FFmpeg 版本是 v4.1.8. 


三. 檢視 FFmpeg 的編解碼器 : 

可用下列兩個指令檢查編解碼器 : 

ffmpeg -encoders (檢視編碼器)
ffmpeg -decoders (檢視解碼器)

檢視編碼器 :

pi@raspberrypi:~ $ ffmpeg -encoders    
ffmpeg version 4.1.8-0+deb10u1+rpt1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --prefix=/usr --extra-version=0+deb10u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --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-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Encoders:
 V..... = Video
 A..... = Audio
 S..... = Subtitle
 .F.... = Frame-level multithreading
 ..S... = Slice-level multithreading
 ...X.. = Codec is experimental
 ....B. = Supports draw_horiz_band
 .....D = Supports direct rendering method 1
 ------
 V..... a64multi             Multicolor charset for Commodore 64 (codec a64_multi)
 V..... a64multi5            Multicolor charset for Commodore 64, extended with 5th color (colram) (codec a64_multi5)
 V..... alias_pix            Alias/Wavefront PIX image
 V..... amv                  AMV Video
 V..... apng                 APNG (Animated Portable Network Graphics) image
 V..... asv1                 ASUS V1
 V..... asv2                 ASUS V2
 V..X.. libaom-av1           libaom AV1 (codec av1)
 V..... avrp                 Avid 1:1 10-bit RGB Packer
 V..X.. avui                 Avid Meridien Uncompressed
 V..... ayuv                 Uncompressed packed MS 4:4:4:4
 V..... bmp                  BMP (Windows and OS/2 bitmap)
 V..... cinepak              Cinepak
 V..... cljr                 Cirrus Logic AccuPak
 V.S... vc2                  SMPTE VC-2 (codec dirac)
 VFS... dnxhd                VC3/DNxHD
 V..... dpx                  DPX (Digital Picture Exchange) image
 VFS... dvvideo              DV (Digital Video)
 V.S... ffv1                 FFmpeg video codec #1
 VF.... ffvhuff              Huffyuv FFmpeg variant
 V..... fits                 Flexible Image Transport System
 V..... flashsv              Flash Screen Video
 V..... flashsv2             Flash Screen Video Version 2
 V..... flv                  FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (codec flv1)
 V..... gif                  GIF (Graphics Interchange Format)
 V..... h261                 H.261
 V..... h263                 H.263 / H.263-1996
 V..... h263_v4l2m2m         V4L2 mem2mem H.263 encoder wrapper (codec h263)
 V.S... h263p                H.263+ / H.263-1998 / H.263 version 2
 V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
 V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
 V..... h264_omx             OpenMAX IL H.264 video encoder (codec h264)
 V..... h264_v4l2m2m         V4L2 mem2mem H.264 encoder wrapper (codec h264)
 V..... h264_vaapi           H.264/AVC (VAAPI) (codec h264)
 V..... hap                  Vidvox Hap
 V..... libx265              libx265 H.265 / HEVC (codec hevc)
 V..... hevc_v4l2m2m         V4L2 mem2mem HEVC encoder wrapper (codec hevc)
 V..... hevc_vaapi           H.265/HEVC (VAAPI) (codec hevc)
 VF.... huffyuv              Huffyuv / HuffYUV
 V..... jpeg2000             JPEG 2000
 VF.... libopenjpeg          OpenJPEG JPEG 2000 (codec jpeg2000)
 VF.... jpegls               JPEG-LS
 VF.... ljpeg                Lossless JPEG
 VF.... magicyuv             MagicYUV video
 VFS... mjpeg                MJPEG (Motion JPEG)
 V..... mjpeg_vaapi          MJPEG (VAAPI) (codec mjpeg)
 V.S... mpeg1video           MPEG-1 video
 V.S... mpeg2video           MPEG-2 video
 V..... mpeg2_vaapi          MPEG-2 (VAAPI) (codec mpeg2video)
 V.S... mpeg4                MPEG-4 part 2
 V..... libxvid              libxvidcore MPEG-4 part 2 (codec mpeg4)
 V..... mpeg4_v4l2m2m        V4L2 mem2mem MPEG4 encoder wrapper (codec mpeg4)
 V..... msmpeg4v2            MPEG-4 part 2 Microsoft variant version 2
 V..... msmpeg4              MPEG-4 part 2 Microsoft variant version 3 (codec msmpeg4v3)
 V..... msvideo1             Microsoft Video-1
 V..... pam                  PAM (Portable AnyMap) image
 V..... pbm                  PBM (Portable BitMap) image
 V..... pcx                  PC Paintbrush PCX image
 V..... pgm                  PGM (Portable GrayMap) image
 V..... pgmyuv               PGMYUV (Portable GrayMap YUV) image
 VF.... png                  PNG (Portable Network Graphics) image
 V..... ppm                  PPM (Portable PixelMap) image
 VF.... prores               Apple ProRes
 VF.... prores_aw            Apple ProRes (codec prores)
 VFS... prores_ks            Apple ProRes (iCodec Pro) (codec prores)
 V..... qtrle                QuickTime Animation (RLE) video
 V..... r10k                 AJA Kona 10-bit RGB Codec
 V..... r210                 Uncompressed RGB 10-bit
 V..... rawvideo             raw video
 V..... roqvideo             id RoQ video (codec roq)
 V..... rv10                 RealVideo 1.0
 V..... rv20                 RealVideo 2.0
 V..... sgi                  SGI image
 V..... snow                 Snow
 V..... sunrast              Sun Rasterfile image
 V..... svq1                 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
 V..... targa                Truevision Targa image
 V..... libtheora            libtheora Theora (codec theora)
 VF.... tiff                 TIFF image
 VF.... utvideo              Ut Video
 V..... v210                 Uncompressed 4:2:2 10-bit
 V..... v308                 Uncompressed packed 4:4:4
 V..... v408                 Uncompressed packed QT 4:4:4:4
 V..... v410                 Uncompressed 4:4:4 10-bit
 V..... libvpx               libvpx VP8 (codec vp8)
 V..... vp8_v4l2m2m          V4L2 mem2mem VP8 encoder wrapper (codec vp8)
 V..... vp8_vaapi            VP8 (VAAPI) (codec vp8)
 V..... libvpx-vp9           libvpx VP9 (codec vp9)
 V..... vp9_vaapi            VP9 (VAAPI) (codec vp9)
 V..... libwebp_anim         libwebp WebP image (codec webp)
 V..... libwebp              libwebp WebP image (codec webp)
 V..... wmv1                 Windows Media Video 7
 V..... wmv2                 Windows Media Video 8
 V..... wrapped_avframe      AVFrame to AVPacket passthrough
 V..... xbm                  XBM (X BitMap) image
 V..... xface                X-face image
 V..... xwd                  XWD (X Window Dump) image
 V..... y41p                 Uncompressed YUV 4:1:1 12-bit
 V..... yuv4                 Uncompressed packed 4:2:0
 VF.... zlib                 LCL (LossLess Codec Library) ZLIB
 V..... zmbv                 Zip Motion Blocks Video
 A..... aac                  AAC (Advanced Audio Coding)
 A..... ac3                  ATSC A/52A (AC-3)
 A..... ac3_fixed            ATSC A/52A (AC-3) (codec ac3)
 A..... adpcm_adx            SEGA CRI ADX ADPCM
 A..... g722                 G.722 ADPCM (codec adpcm_g722)
 A..... g726                 G.726 ADPCM (codec adpcm_g726)
 A..... g726le               G.726 little endian ADPCM ("right-justified") (codec adpcm_g726le)
 A..... adpcm_ima_qt         ADPCM IMA QuickTime
 A..... adpcm_ima_wav        ADPCM IMA WAV
 A..... adpcm_ms             ADPCM Microsoft
 A..... adpcm_swf            ADPCM Shockwave Flash
 A..... adpcm_yamaha         ADPCM Yamaha
 A..... alac                 ALAC (Apple Lossless Audio Codec)
 A..... aptx                 aptX (Audio Processing Technology for Bluetooth)
 A..... aptx_hd              aptX HD (Audio Processing Technology for Bluetooth)
 A..... libcodec2            codec2 encoder using libcodec2 (codec codec2)
 A..... comfortnoise         RFC 3389 comfort noise generator
 A..X.. dca                  DCA (DTS Coherent Acoustics) (codec dts)
 A..... eac3                 ATSC A/52 E-AC-3
 A..... flac                 FLAC (Free Lossless Audio Codec)
 A..... g723_1               G.723.1
 A..... libgsm               libgsm GSM (codec gsm)
 A..... libgsm_ms            libgsm GSM Microsoft variant (codec gsm_ms)
 A..X.. mlp                  MLP (Meridian Lossless Packing)
 A..... mp2                  MP2 (MPEG audio layer 2)
 A..... mp2fixed             MP2 fixed point (MPEG audio layer 2) (codec mp2)
 A..... libtwolame           libtwolame MP2 (MPEG audio layer 2) (codec mp2)
 A..... libmp3lame           libmp3lame MP3 (MPEG audio layer 3) (codec mp3)
 A..... libshine             libshine MP3 (MPEG audio layer 3) (codec mp3)
 A..... nellymoser           Nellymoser Asao
 A..X.. opus                 Opus
 A..... libopus              libopus Opus (codec opus)
 A..... pcm_alaw             PCM A-law / G.711 A-law
 A..... pcm_f32be            PCM 32-bit floating point big-endian
 A..... pcm_f32le            PCM 32-bit floating point little-endian
 A..... pcm_f64be            PCM 64-bit floating point big-endian
 A..... pcm_f64le            PCM 64-bit floating point little-endian
 A..... pcm_mulaw            PCM mu-law / G.711 mu-law
 A..... pcm_s16be            PCM signed 16-bit big-endian
 A..... pcm_s16be_planar     PCM signed 16-bit big-endian planar
 A..... pcm_s16le            PCM signed 16-bit little-endian
 A..... pcm_s16le_planar     PCM signed 16-bit little-endian planar
 A..... pcm_s24be            PCM signed 24-bit big-endian
 A..... pcm_s24daud          PCM D-Cinema audio signed 24-bit
 A..... pcm_s24le            PCM signed 24-bit little-endian
 A..... pcm_s24le_planar     PCM signed 24-bit little-endian planar
 A..... pcm_s32be            PCM signed 32-bit big-endian
 A..... pcm_s32le            PCM signed 32-bit little-endian
 A..... pcm_s32le_planar     PCM signed 32-bit little-endian planar
 A..... pcm_s64be            PCM signed 64-bit big-endian
 A..... pcm_s64le            PCM signed 64-bit little-endian
 A..... pcm_s8               PCM signed 8-bit
 A..... pcm_s8_planar        PCM signed 8-bit planar
 A..... pcm_u16be            PCM unsigned 16-bit big-endian
 A..... pcm_u16le            PCM unsigned 16-bit little-endian
 A..... pcm_u24be            PCM unsigned 24-bit big-endian
 A..... pcm_u24le            PCM unsigned 24-bit little-endian
 A..... pcm_u32be            PCM unsigned 32-bit big-endian
 A..... pcm_u32le            PCM unsigned 32-bit little-endian
 A..... pcm_u8               PCM unsigned 8-bit
 A..... pcm_vidc             PCM Archimedes VIDC
 A..... real_144             RealAudio 1.0 (14.4K) (codec ra_144)
 A..... roq_dpcm             id RoQ DPCM
 A..X.. s302m                SMPTE 302M
 A..... sbc                  SBC (low-complexity subband codec)
 A..X.. sonic                Sonic
 A..X.. sonicls              Sonic lossless
 A..... libspeex             libspeex Speex (codec speex)
 A..X.. truehd               TrueHD
 A..... tta                  TTA (True Audio)
 A..X.. vorbis               Vorbis
 A..... libvorbis            libvorbis (codec vorbis)
 A..... wavpack              WavPack
 A..... libwavpack            (codec wavpack)
 A..... wmav1                Windows Media Audio 1
 A..... wmav2                Windows Media Audio 2
 S..... ssa                  ASS (Advanced SubStation Alpha) subtitle (codec ass)
 S..... ass                  ASS (Advanced SubStation Alpha) subtitle
 S..... dvbsub               DVB subtitles (codec dvb_subtitle)
 S..... dvdsub               DVD subtitles (codec dvd_subtitle)
 S..... mov_text             3GPP Timed Text subtitle
 S..... srt                  SubRip subtitle (codec subrip)
 S..... subrip               SubRip subtitle
 S..... text                 Raw text subtitle
 S..... webvtt               WebVTT subtitle
 S..... xsub                 DivX subtitles (XSUB)

檢查解碼器 : 

pi@raspberrypi:~ $ ffmpeg -decoders     
ffmpeg version 4.1.8-0+deb10u1+rpt1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --prefix=/usr --extra-version=0+deb10u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --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-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Decoders:
 V..... = Video
 A..... = Audio
 S..... = Subtitle
 .F.... = Frame-level multithreading
 ..S... = Slice-level multithreading
 ...X.. = Codec is experimental
 ....B. = Supports draw_horiz_band
 .....D = Supports direct rendering method 1
 ------
 V....D 012v                 Uncompressed 4:2:2 10-bit
 V....D 4xm                  4X Movie
 V....D 8bps                 QuickTime 8BPS video
 V....D aasc                 Autodesk RLE
 VF...D aic                  Apple Intermediate Codec
 V....D alias_pix            Alias/Wavefront PIX image
 V....D amv                  AMV Video
 V....D anm                  Deluxe Paint Animation
 V....D ansi                 ASCII/ANSI art
 VF...D apng                 APNG (Animated Portable Network Graphics) image
 V....D asv1                 ASUS V1
 V....D asv2                 ASUS V2
 V....D aura                 Auravision AURA
 V....D aura2                Auravision Aura 2
 V....D libaom-av1           libaom AV1 (codec av1)
 V..... avrn                 Avid AVI Codec
 V....D avrp                 Avid 1:1 10-bit RGB Packer
 V....D avs                  AVS (Audio Video Standard) video
 V....D avui                 Avid Meridien Uncompressed
 V....D ayuv                 Uncompressed packed MS 4:4:4:4
 V....D bethsoftvid          Bethesda VID video
 V....D bfi                  Brute Force & Ignorance
 V....D binkvideo            Bink video
 V....D bintext              Binary text
 V..X.. bitpacked            Bitpacked
 V....D bmp                  BMP (Windows and OS/2 bitmap)
 V....D bmv_video            Discworld II BMV video
 V....D brender_pix          BRender PIX image
 V....D c93                  Interplay C93
 V....D cavs                 Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile)
 V....D cdgraphics           CD Graphics video
 V....D cdxl                 Commodore CDXL video
 VF...D cfhd                 Cineform HD
 V....D cinepak              Cinepak
 V....D clearvideo           Iterated Systems ClearVideo
 V....D cljr                 Cirrus Logic AccuPak
 VF...D cllc                 Canopus Lossless Codec
 V....D eacmv                Electronic Arts CMV video (codec cmv)
 V....D cpia                 CPiA video format
 V....D camstudio            CamStudio (codec cscd)
 V....D cyuv                 Creative YUV (CYUV)
 V.S..D dds                  DirectDraw Surface image decoder
 V....D dfa                  Chronomaster DFA
 V.S..D dirac                BBC Dirac VC-2
 VFS..D dnxhd                VC3/DNxHD
 V....D dpx                  DPX (Digital Picture Exchange) image
 V....D dsicinvideo          Delphine Software International CIN video
 V.S..D dvvideo              DV (Digital Video)
 V....D dxa                  Feeble Files/ScummVM DXA
 V....D dxtory               Dxtory
 VFS..D dxv                  Resolume DXV
 V....D escape124            Escape 124
 V....D escape130            Escape 130
 VFS..D exr                  OpenEXR image
 VFS..D ffv1                 FFmpeg video codec #1
 VF..BD ffvhuff              Huffyuv FFmpeg variant
 V.S..D fic                  Mirillis FIC
 V....D fits                 Flexible Image Transport System
 V....D flashsv              Flash Screen Video v1
 V....D flashsv2             Flash Screen Video v2
 V....D flic                 Autodesk Animator Flic video
 V...BD flv                  FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (codec flv1)
 V....D fmvc                 FM Screen Capture Codec
 VF...D fraps                Fraps
 V....D frwu                 Forward Uncompressed
 V....D g2m                  Go2Meeting
 V....D gdv                  Gremlin Digital Video
 V....D gif                  GIF (Graphics Interchange Format)
 V....D h261                 H.261
 V...BD h263                 H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2
 V..... h263_v4l2m2m         V4L2 mem2mem H.263 decoder wrapper (codec h263)
 V...BD h263i                Intel H.263
 V...BD h263p                H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2
 VFS..D h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
 V..... h264_v4l2m2m         V4L2 mem2mem H.264 decoder wrapper (codec h264)
 V..... h264_mmal            h264 (mmal) (codec h264)
 VFS..D hap                  Vidvox Hap
 VFS..D hevc                 HEVC (High Efficiency Video Coding)
 VF...D hevc_rpi             HEVC (rpi) (codec hevc)
 V..... hevc_v4l2m2m         V4L2 mem2mem HEVC decoder wrapper (codec hevc)
 V....D hnm4video            HNM 4 video
 V....D hq_hqa               Canopus HQ/HQA
 VFS..D hqx                  Canopus HQX
 VF..BD huffyuv              Huffyuv / HuffYUV
 V....D idcinvideo           id Quake II CIN video (codec idcin)
 V....D idf                  iCEDraw text
 V....D iff                  IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN (codec iff_ilbm)
 V....D imm4                 Infinity IMM4
 V....D indeo2               Intel Indeo 2
 V....D indeo3               Intel Indeo 3
 V....D indeo4               Intel Indeo Video Interactive 4
 V....D indeo5               Intel Indeo Video Interactive 5
 V....D interplayvideo       Interplay MVE video
 VFS..D jpeg2000             JPEG 2000
 VF...D libopenjpeg          OpenJPEG JPEG 2000 (codec jpeg2000)
 V....D jpegls               JPEG-LS
 V....D jv                   Bitmap Brothers JV video
 V....D kgv1                 Kega Game Video
 V....D kmvc                 Karl Morton's video codec
 VF...D lagarith             Lagarith lossless
 V....D loco                 LOCO
 V....D m101                 Matrox Uncompressed SD
 V....D eamad                Electronic Arts Madcow Video (codec mad)
 VFS..D magicyuv             MagicYUV video
 VF...D mdec                 Sony PlayStation MDEC (Motion DECoder)
 VF...D mimic                Mimic
 V....D mjpeg                MJPEG (Motion JPEG)
 V....D mjpegb               Apple MJPEG-B
 V....D mmvideo              American Laser Games MM Video
 V....D motionpixels         Motion Pixels video
 V.S.BD mpeg1video           MPEG-1 video
 V..... mpeg1_v4l2m2m        V4L2 mem2mem MPEG1 decoder wrapper (codec mpeg1video)
 V.S.BD mpeg2video           MPEG-2 video
 V.S.BD mpegvideo            MPEG-1 video (codec mpeg2video)
 V..... mpeg2_mmal           mpeg2 (mmal) (codec mpeg2video)
 V..... mpeg2_v4l2m2m        V4L2 mem2mem MPEG2 decoder wrapper (codec mpeg2video)
 VF..BD mpeg4                MPEG-4 part 2
 V..... mpeg4_v4l2m2m        V4L2 mem2mem MPEG4 decoder wrapper (codec mpeg4)
 V..... mpeg4_mmal           mpeg4 (mmal) (codec mpeg4)
 V....D msa1                 MS ATC Screen
 V....D mscc                 Mandsoft Screen Capture Codec
 V...BD msmpeg4v1            MPEG-4 part 2 Microsoft variant version 1
 V...BD msmpeg4v2            MPEG-4 part 2 Microsoft variant version 2
 V...BD msmpeg4              MPEG-4 part 2 Microsoft variant version 3 (codec msmpeg4v3)
 V....D msrle                Microsoft RLE
 V....D mss1                 MS Screen 1
 V....D mss2                 MS Windows Media Video V9 Screen
 V....D msvideo1             Microsoft Video 1
 VF...D mszh                 LCL (LossLess Codec Library) MSZH
 V....D mts2                 MS Expression Encoder Screen
 V....D mvc1                 Silicon Graphics Motion Video Compressor 1
 V....D mvc2                 Silicon Graphics Motion Video Compressor 2
 V....D mwsc                 MatchWare Screen Capture Codec
 V....D mxpeg                Mobotix MxPEG video
 V....D nuv                  NuppelVideo/RTJPEG
 V....D paf_video            Amazing Studio Packed Animation File Video
 V....D pam                  PAM (Portable AnyMap) image
 V....D pbm                  PBM (Portable BitMap) image
 V....D pcx                  PC Paintbrush PCX image
 V....D pgm                  PGM (Portable GrayMap) image
 V....D pgmyuv               PGMYUV (Portable GrayMap YUV) image
 V....D pictor               Pictor/PC Paint
 VF...D pixlet               Apple Pixlet
 VF...D png                  PNG (Portable Network Graphics) image
 V....D ppm                  PPM (Portable PixelMap) image
 VFS..D prores               ProRes (iCodec Pro)
 V....D prosumer             Brooktree ProSumer Video
 VF...D psd                  Photoshop PSD file
 V....D ptx                  V.Flash PTX image
 V....D qdraw                Apple QuickDraw
 V....D qpeg                 Q-team QPEG
 V....D qtrle                QuickTime Animation (RLE) video
 V....D r10k                 AJA Kona 10-bit RGB Codec
 V....D r210                 Uncompressed RGB 10-bit
 V....D rasc                 RemotelyAnywhere Screen Capture
 V..... rawvideo             raw video
 V....D rl2                  RL2 video
 V....D roqvideo             id RoQ video (codec roq)
 V....D rpza                 QuickTime video (RPZA)
 V....D rscc                 innoHeim/Rsupport Screen Capture Codec
 V....D rv10                 RealVideo 1.0
 V....D rv20                 RealVideo 2.0
 VF...D rv30                 RealVideo 3.0
 VF...D rv40                 RealVideo 4.0
 V....D sanm                 LucasArts SANM/Smush video
 V....D scpr                 ScreenPressor
 V....D screenpresso         Screenpresso
 V....D sgi                  SGI image
 V....D sgirle               Silicon Graphics RLE 8-bit video
 VF...D sheervideo           BitJazz SheerVideo
 V....D smackvid             Smacker video (codec smackvideo)
 V....D smc                  QuickTime Graphics (SMC)
 V..... smvjpeg              SMV JPEG
 V....D snow                 Snow
 V....D sp5x                 Sunplus JPEG (SP5X)
 V....D speedhq              NewTek SpeedHQ
 V....D srgc                 Screen Recorder Gold Codec
 V....D sunrast              Sun Rasterfile image
 V....D librsvg              Librsvg rasterizer (codec svg)
 V....D svq1                 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
 V...BD svq3                 Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3
 V....D targa                Truevision Targa image
 V....D targa_y216           Pinnacle TARGA CineWave YUV16
 V....D tdsc                 TDSC
 V....D eatgq                Electronic Arts TGQ video (codec tgq)
 V....D eatgv                Electronic Arts TGV video (codec tgv)
 VF..BD theora               Theora
 V....D thp                  Nintendo Gamecube THP video
 V....D tiertexseqvideo      Tiertex Limited SEQ video
 VF...D tiff                 TIFF image
 V....D tmv                  8088flex TMV
 V....D eatqi                Electronic Arts TQI Video (codec tqi)
 V....D truemotion1          Duck TrueMotion 1.0
 V....D truemotion2          Duck TrueMotion 2.0
 V....D truemotion2rt        Duck TrueMotion 2.0 Real Time
 V....D camtasia             TechSmith Screen Capture Codec (codec tscc)
 V....D tscc2                TechSmith Screen Codec 2
 V....D txd                  Renderware TXD (TeXture Dictionary) image
 V....D ultimotion           IBM UltiMotion (codec ulti)
 VF...D utvideo              Ut Video
 V....D v210                 Uncompressed 4:2:2 10-bit
 V....D v210x                Uncompressed 4:2:2 10-bit
 V....D v308                 Uncompressed packed 4:4:4
 V....D v408                 Uncompressed packed QT 4:4:4:4
 V....D v410                 Uncompressed 4:4:4 10-bit
 V....D vb                   Beam Software VB
 VF...D vble                 VBLE Lossless Codec
 V....D vc1                  SMPTE VC-1
 V..... vc1_mmal             vc1 (mmal) (codec vc1)
 V..... vc1_v4l2m2m          V4L2 mem2mem VC1 decoder wrapper (codec vc1)
 V....D vc1image             Windows Media Video 9 Image v2
 V....D vcr1                 ATI VCR1
 V....D xl                   Miro VideoXL (codec vixl)
 V....D vmdvideo             Sierra VMD video
 V....D vmnc                 VMware Screen Codec / VMware Video
 VF..BD vp3                  On2 VP3
 V....D vp5                  On2 VP5
 V....D vp6                  On2 VP6
 V.S..D vp6a                 On2 VP6 (Flash version, with alpha channel)
 V....D vp6f                 On2 VP6 (Flash version)
 V....D vp7                  On2 VP7
 VFS..D vp8                  On2 VP8
 V..... vp8_v4l2m2m          V4L2 mem2mem VP8 decoder wrapper (codec vp8)
 V....D libvpx               libvpx VP8 (codec vp8)
 VFS..D vp9                  Google VP9
 V..... vp9_v4l2m2m          V4L2 mem2mem VP9 decoder wrapper (codec vp9)
 V....D libvpx-vp9           libvpx VP9 (codec vp9)
 V....D wcmv                 WinCAM Motion Video
 VF...D webp                 WebP image
 V...BD wmv1                 Windows Media Video 7
 V...BD wmv2                 Windows Media Video 8
 V....D wmv3                 Windows Media Video 9
 V....D wmv3image            Windows Media Video 9 Image
 V....D wnv1                 Winnov WNV1
 V..... wrapped_avframe      AVPacket to AVFrame passthrough
 V....D vqavideo             Westwood Studios VQA (Vector Quantized Animation) video (codec ws_vqa)
 V....D xan_wc3              Wing Commander III / Xan
 V....D xan_wc4              Wing Commander IV / Xxan
 V....D xbin                 eXtended BINary text
 V....D xbm                  XBM (X BitMap) image
 V..... xface                X-face image
 V....D xpm                  XPM (X PixMap) image
 V....D xwd                  XWD (X Window Dump) image
 V....D y41p                 Uncompressed YUV 4:1:1 12-bit
 VF...D ylc                  YUY2 Lossless Codec
 V..... yop                  Psygnosis YOP Video
 V....D yuv4                 Uncompressed packed 4:2:0
 V....D zerocodec            ZeroCodec Lossless Video
 VF...D zlib                 LCL (LossLess Codec Library) ZLIB
 V....D zmbv                 Zip Motion Blocks Video
 A....D 8svx_exp             8SVX exponential
 A....D 8svx_fib             8SVX fibonacci
 A....D aac                  AAC (Advanced Audio Coding)
 A....D aac_fixed            AAC (Advanced Audio Coding) (codec aac)
 A....D aac_latm             AAC LATM (Advanced Audio Coding LATM syntax)
 A....D ac3                  ATSC A/52A (AC-3)
 A....D ac3_fixed            ATSC A/52A (AC-3) (codec ac3)
 A....D adpcm_4xm            ADPCM 4X Movie
 A....D adpcm_adx            SEGA CRI ADX ADPCM
 A....D adpcm_afc            ADPCM Nintendo Gamecube AFC
 A....D adpcm_aica           ADPCM Yamaha AICA
 A....D adpcm_ct             ADPCM Creative Technology
 A....D adpcm_dtk            ADPCM Nintendo Gamecube DTK
 A....D adpcm_ea             ADPCM Electronic Arts
 A....D adpcm_ea_maxis_xa    ADPCM Electronic Arts Maxis CDROM XA
 A....D adpcm_ea_r1          ADPCM Electronic Arts R1
 A....D adpcm_ea_r2          ADPCM Electronic Arts R2
 A....D adpcm_ea_r3          ADPCM Electronic Arts R3
 A....D adpcm_ea_xas         ADPCM Electronic Arts XAS
 A....D g722                 G.722 ADPCM (codec adpcm_g722)
 A....D g726                 G.726 ADPCM (codec adpcm_g726)
 A....D g726le               G.726 ADPCM little-endian (codec adpcm_g726le)
 A....D adpcm_ima_amv        ADPCM IMA AMV
 A....D adpcm_ima_apc        ADPCM IMA CRYO APC
 A....D adpcm_ima_dat4       ADPCM IMA Eurocom DAT4
 A....D adpcm_ima_dk3        ADPCM IMA Duck DK3
 A....D adpcm_ima_dk4        ADPCM IMA Duck DK4
 A....D adpcm_ima_ea_eacs    ADPCM IMA Electronic Arts EACS
 A....D adpcm_ima_ea_sead    ADPCM IMA Electronic Arts SEAD
 A....D adpcm_ima_iss        ADPCM IMA Funcom ISS
 A....D adpcm_ima_oki        ADPCM IMA Dialogic OKI
 A....D adpcm_ima_qt         ADPCM IMA QuickTime
 A....D adpcm_ima_rad        ADPCM IMA Radical
 A....D adpcm_ima_smjpeg     ADPCM IMA Loki SDL MJPEG
 A....D adpcm_ima_wav        ADPCM IMA WAV
 A....D adpcm_ima_ws         ADPCM IMA Westwood
 A....D adpcm_ms             ADPCM Microsoft
 A....D adpcm_mtaf           ADPCM MTAF
 A....D adpcm_psx            ADPCM Playstation
 A....D adpcm_sbpro_2        ADPCM Sound Blaster Pro 2-bit
 A....D adpcm_sbpro_3        ADPCM Sound Blaster Pro 2.6-bit
 A....D adpcm_sbpro_4        ADPCM Sound Blaster Pro 4-bit
 A....D adpcm_swf            ADPCM Shockwave Flash
 A....D adpcm_thp            ADPCM Nintendo THP
 A....D adpcm_thp_le         ADPCM Nintendo THP (little-endian)
 A....D adpcm_vima           LucasArts VIMA audio
 A....D adpcm_xa             ADPCM CDROM XA
 A....D adpcm_yamaha         ADPCM Yamaha
 AF...D alac                 ALAC (Apple Lossless Audio Codec)
 A....D amrnb                AMR-NB (Adaptive Multi-Rate NarrowBand) (codec amr_nb)
 A....D amrwb                AMR-WB (Adaptive Multi-Rate WideBand) (codec amr_wb)
 A....D ape                  Monkey's Audio
 A....D aptx                 aptX (Audio Processing Technology for Bluetooth)
 A....D aptx_hd              aptX HD (Audio Processing Technology for Bluetooth)
 A....D atrac1               ATRAC1 (Adaptive TRansform Acoustic Coding)
 A....D atrac3               ATRAC3 (Adaptive TRansform Acoustic Coding 3)
 A....D atrac3al             ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)
 A....D atrac3plus           ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) (codec atrac3p)
 A....D atrac3plusal         ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) (codec atrac3pal)
 A....D atrac9               ATRAC9 (Adaptive TRansform Acoustic Coding 9)
 A....D on2avc               On2 Audio for Video Codec (codec avc)
 A....D binkaudio_dct        Bink Audio (DCT)
 A....D binkaudio_rdft       Bink Audio (RDFT)
 A....D bmv_audio            Discworld II BMV audio
 A..... libcodec2            codec2 decoder using libcodec2 (codec codec2)
 A....D comfortnoise         RFC 3389 comfort noise generator
 A....D cook                 Cook / Cooker / Gecko (RealAudio G2)
 A....D dolby_e              Dolby E
 A..... dsd_lsbf             DSD (Direct Stream Digital), least significant bit first
 A..... dsd_lsbf_planar      DSD (Direct Stream Digital), least significant bit first, planar
 A..... dsd_msbf             DSD (Direct Stream Digital), most significant bit first
 A..... dsd_msbf_planar      DSD (Direct Stream Digital), most significant bit first, planar
 A....D dsicinaudio          Delphine Software International CIN audio
 A....D dss_sp               Digital Speech Standard - Standard Play mode (DSS SP)
 A....D dst                  DST (Digital Stream Transfer)
 A....D dca                  DCA (DTS Coherent Acoustics) (codec dts)
 A....D dvaudio              Ulead DV Audio
 A....D eac3                 ATSC A/52B (AC-3, E-AC-3)
 A....D evrc                 EVRC (Enhanced Variable Rate Codec)
 AF...D flac                 FLAC (Free Lossless Audio Codec)
 A....D g723_1               G.723.1
 A....D g729                 G.729
 A....D gremlin_dpcm         DPCM Gremlin
 A....D gsm                  GSM
 A....D libgsm               libgsm GSM (codec gsm)
 A....D gsm_ms               GSM Microsoft variant
 A....D libgsm_ms            libgsm GSM Microsoft variant (codec gsm_ms)
 A....D iac                  IAC (Indeo Audio Coder)
 A....D ilbc                 iLBC (Internet Low Bitrate Codec)
 A....D imc                  IMC (Intel Music Coder)
 A....D interplay_dpcm       DPCM Interplay
 A....D interplayacm         Interplay ACM
 A....D mace3                MACE (Macintosh Audio Compression/Expansion) 3:1
 A....D mace6                MACE (Macintosh Audio Compression/Expansion) 6:1
 A....D metasound            Voxware MetaSound
 A....D mlp                  MLP (Meridian Lossless Packing)
 A....D mp1                  MP1 (MPEG audio layer 1)
 A....D mp1float             MP1 (MPEG audio layer 1) (codec mp1)
 A....D mp2                  MP2 (MPEG audio layer 2)
 A....D mp2float             MP2 (MPEG audio layer 2) (codec mp2)
 A....D mp3float             MP3 (MPEG audio layer 3) (codec mp3)
 A....D mp3                  MP3 (MPEG audio layer 3)
 A....D mp3adufloat          ADU (Application Data Unit) MP3 (MPEG audio layer 3) (codec mp3adu)
 A....D mp3adu               ADU (Application Data Unit) MP3 (MPEG audio layer 3)
 A....D mp3on4float          MP3onMP4 (codec mp3on4)
 A....D mp3on4               MP3onMP4
 A....D als                  MPEG-4 Audio Lossless Coding (ALS) (codec mp4als)
 A....D mpc7                 Musepack SV7 (codec musepack7)
 A....D mpc8                 Musepack SV8 (codec musepack8)
 A....D nellymoser           Nellymoser Asao
 A....D opus                 Opus
 A....D libopus              libopus Opus (codec opus)
 A....D paf_audio            Amazing Studio Packed Animation File Audio
 A....D pcm_alaw             PCM A-law / G.711 A-law
 A....D pcm_bluray           PCM signed 16|20|24-bit big-endian for Blu-ray media
 A....D pcm_dvd              PCM signed 16|20|24-bit big-endian for DVD media
 A....D pcm_f16le            PCM 16.8 floating point little-endian
 A....D pcm_f24le            PCM 24.0 floating point little-endian
 A....D pcm_f32be            PCM 32-bit floating point big-endian
 A....D pcm_f32le            PCM 32-bit floating point little-endian
 A....D pcm_f64be            PCM 64-bit floating point big-endian
 A....D pcm_f64le            PCM 64-bit floating point little-endian
 A....D pcm_lxf              PCM signed 20-bit little-endian planar
 A....D pcm_mulaw            PCM mu-law / G.711 mu-law
 A....D pcm_s16be            PCM signed 16-bit big-endian
 A....D pcm_s16be_planar     PCM signed 16-bit big-endian planar
 A....D pcm_s16le            PCM signed 16-bit little-endian
 A....D pcm_s16le_planar     PCM signed 16-bit little-endian planar
 A....D pcm_s24be            PCM signed 24-bit big-endian
 A....D pcm_s24daud          PCM D-Cinema audio signed 24-bit
 A....D pcm_s24le            PCM signed 24-bit little-endian
 A....D pcm_s24le_planar     PCM signed 24-bit little-endian planar
 A....D pcm_s32be            PCM signed 32-bit big-endian
 A....D pcm_s32le            PCM signed 32-bit little-endian
 A....D pcm_s32le_planar     PCM signed 32-bit little-endian planar
 A....D pcm_s64be            PCM signed 64-bit big-endian
 A....D pcm_s64le            PCM signed 64-bit little-endian
 A....D pcm_s8               PCM signed 8-bit
 A....D pcm_s8_planar        PCM signed 8-bit planar
 A....D pcm_u16be            PCM unsigned 16-bit big-endian
 A....D pcm_u16le            PCM unsigned 16-bit little-endian
 A....D pcm_u24be            PCM unsigned 24-bit big-endian
 A....D pcm_u24le            PCM unsigned 24-bit little-endian
 A....D pcm_u32be            PCM unsigned 32-bit big-endian
 A....D pcm_u32le            PCM unsigned 32-bit little-endian
 A....D pcm_u8               PCM unsigned 8-bit
 A....D pcm_vidc             PCM Archimedes VIDC
 A....D pcm_zork             PCM Zork
 A....D qcelp                QCELP / PureVoice
 A....D qdm2                 QDesign Music Codec 2
 A....D qdmc                 QDesign Music Codec 1
 A....D real_144             RealAudio 1.0 (14.4K) (codec ra_144)
 A....D real_288             RealAudio 2.0 (28.8K) (codec ra_288)
 A....D ralf                 RealAudio Lossless
 A....D roq_dpcm             DPCM id RoQ
 A....D s302m                SMPTE 302M
 A....D sbc                  SBC (low-complexity subband codec)
 A....D sdx2_dpcm            DPCM Squareroot-Delta-Exact
 A....D shorten              Shorten
 A....D sipr                 RealAudio SIPR / ACELP.NET
 A....D smackaud             Smacker audio (codec smackaudio)
 A....D sol_dpcm             DPCM Sol
 A..X.D sonic                Sonic
 A....D libspeex             libspeex Speex (codec speex)
 AF...D tak                  TAK (Tom's lossless Audio Kompressor)
 A....D truehd               TrueHD
 A....D truespeech           DSP Group TrueSpeech
 AF...D tta                  TTA (True Audio)
 A....D twinvq               VQF TwinVQ
 A....D vmdaudio             Sierra VMD audio
 A....D vorbis               Vorbis
 A..... libvorbis            libvorbis (codec vorbis)
 A....D wavesynth            Wave synthesis pseudo-codec
 AF...D wavpack              WavPack
 A....D ws_snd1              Westwood Audio (SND1) (codec westwood_snd1)
 A....D wmalossless          Windows Media Audio Lossless
 A....D wmapro               Windows Media Audio 9 Professional
 A....D wmav1                Windows Media Audio 1
 A....D wmav2                Windows Media Audio 2
 A....D wmavoice             Windows Media Audio Voice
 A....D xan_dpcm             DPCM Xan
 A....D xma1                 Xbox Media Audio 1
 A....D xma2                 Xbox Media Audio 2
 S..... ssa                  ASS (Advanced SubStation Alpha) subtitle (codec ass)
 S..... ass                  ASS (Advanced SubStation Alpha) subtitle
 S..... dvbsub               DVB subtitles (codec dvb_subtitle)
 S..... libzvbi_teletextdec  Libzvbi DVB teletext decoder (codec dvb_teletext)
 S..... dvdsub               DVD subtitles (codec dvd_subtitle)
 S..... cc_dec               Closed Caption (EIA-608 / CEA-708) (codec eia_608)
 S..... pgssub               HDMV Presentation Graphic Stream subtitles (codec hdmv_pgs_subtitle)
 S..... jacosub              JACOsub subtitle
 S..... microdvd             MicroDVD subtitle
 S..... mov_text             3GPP Timed Text subtitle
 S..... mpl2                 MPL2 subtitle
 S..... pjs                  PJS subtitle
 S..... realtext             RealText subtitle
 S..... sami                 SAMI subtitle
 S..... stl                  Spruce subtitle format
 S..... srt                  SubRip subtitle (codec subrip)
 S..... subrip               SubRip subtitle
 S..... subviewer            SubViewer subtitle
 S..... subviewer1           SubViewer1 subtitle
 S..... text                 Raw text subtitle
 S..... vplayer              VPlayer subtitle
 S..... webvtt               WebVTT subtitle
 S..... xsub                 XSUB


四. 用 FFmpeg 將 mp4 轉成 mkv 檔 : 

先下載作者所提供放在 GitHub 的約 5MB 大小的 mp4 檔 :

wget -O test.mp4 https://raw.githubusercontent.com/mediaelement/mediaelement-files/master/big_buck_bunny.mp4

下載後會放在使用者目錄 (home/pi) 底下, 檔名為 test.mp4, 轉檔指令如下 : 

ffmpeg -i test.mp4 out.mkv

結果如下 : 

pi@raspberrypi:~ $ ffmpeg -i test.mp4 out.mkv   
ffmpeg version 4.1.8-0+deb10u1+rpt1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --prefix=/usr --extra-version=0+deb10u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --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-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1
    creation_time   : 2010-02-09T01:55:39.000000Z
  Duration: 00:01:00.10, start: 0.000000, bitrate: 733 kb/s
    Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 65 kb/s (default)
    Metadata:
      creation_time   : 2010-02-09T01:55:39.000000Z
      handler_name    : Apple Sound Media Handler
    Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 640x360, 612 kb/s, 23.96 fps, 24 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      creation_time   : 2010-02-09T01:55:39.000000Z
      handler_name    : Apple Video Media Handler
    Stream #0:2(eng): Data: none (rtp  / 0x20707472), 45 kb/s
    Metadata:
      creation_time   : 2010-02-09T01:55:39.000000Z
      handler_name    : hint media handler
    Stream #0:3(eng): Data: none (rtp  / 0x20707472), 5 kb/s
    Metadata:
      creation_time   : 2010-02-09T01:55:39.000000Z
      handler_name    : hint media handler
Stream mapping:
  Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:0 -> #0:1 (aac (native) -> vorbis (libvorbis))
Press [q] to stop, [?] for help
[libx264 @ 0x1593eb0] using cpu capabilities: none!
[libx264 @ 0x1593eb0] profile High, level 3.0
[libx264 @ 0x1593eb0] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'out.mkv':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1
    encoder         : Lavf58.20.100
    Stream #0:0(eng): Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 640x360, q=-1--1, 24 fps, 1k tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2010-02-09T01:55:39.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(eng): Audio: vorbis (libvorbis) (oV[0][0] / 0x566F), 22050 Hz, stereo, fltp (default)
    Metadata:
      creation_time   : 2010-02-09T01:55:39.000000Z
      handler_name    : Apple Sound Media Handler
      encoder         : Lavc58.35.100 libvorbis
frame=    6 fps=0.0 q=0.0 size=       5kB time=00:00:00.41 bitrate=  92.0kbits/sframe=   16 fps= 15 q=0.0 size=       5kB time=00:00:00.92 bitrate=  41.2kbits/sframe=   24 fps= 16 q=0.0 size=       5kB time=00:00:01.29 bitrate=  29.4kbits/sframe=   35 fps= 17 q=0.0 size=       5kB time=00:00:01.46 bitrate=  26.0kbits/sframe=   43 fps=4.9 q=28.0 size=       5kB time=00:00:01.95 bitrate=  19.5kbits/frame=   45 fps=4.8 q=28.0 size=       5kB time=00:00:01.95 bitrate=  19.5kbits/frame=   47 fps=4.2 q=28.0 size=       5kB time=00:00:01.95 bitrate=  19.5kbits/frame=   48 fps=3.9 q=28.0 size=       5kB time=00:00:02.00 bitrate=  19.0kbits/frame=   50 fps=3.7 q=28.0 size=       5kB time=00:00:02.42 bitrate=  15.8kbits/frame=   51 fps=3.5 q=28.0 size=       5kB time=00:00:02.42 bitrate=  15.8kbits/frame=   52 fps=3.3 q=28.0 size=       5kB time=00:00:02.42 bitrate=  15.8kbits/frame=   53 fps=3.2 q=28.0 size=       5kB time=00:00:02.42 bitrate=  15.8kbits/frame=   54 fps=3.0 q=28.0 size=       5kB time=00:00:02.42 bitrate=  15.8kbits/
...... (略).....
frame= 1439 fps=1.0 q=28.0 size=    4622kB time=00:00:59.90 bitrate= 632.0kbits/frame= 1440 fps=1.0 q=28.0 size=    4622kB time=00:00:59.90 bitrate= 632.0kbits/frame= 1440 fps=1.0 q=28.0 size=    4622kB time=00:00:59.95 bitrate= 631.5kbits/frame= 1440 fps=1.0 q=28.0 Lsize=    4734kB time=00:01:00.13 bitrate= 644.8kbits/s speed=0.041x
video:4308kB audio:392kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 0.703682%
[libx264 @ 0x1593eb0] frame I:9     Avg QP:18.98  size: 39815
[libx264 @ 0x1593eb0] frame P:801   Avg QP:22.26  size:  4371
[libx264 @ 0x1593eb0] frame B:630   Avg QP:27.41  size:   876
[libx264 @ 0x1593eb0] consecutive B-frames: 38.9%  5.6%  8.3% 47.2%
[libx264 @ 0x1593eb0] mb I  I16..4: 11.1% 21.6% 67.3%
[libx264 @ 0x1593eb0] mb P  I16..4:  1.1%  2.6%  0.9%  P16..4: 33.7% 11.7%  6.2%  0.0%  0.0%    skip:43.8%
[libx264 @ 0x1593eb0] mb B  I16..4:  0.9%  0.8%  0.1%  B16..8: 38.3%  5.9%  1.4%  direct: 2.2%  skip:50.4%  L0:49.8% L1:44.3% BI: 5.9%
[libx264 @ 0x1593eb0] 8x8 transform intra:48.4% inter:42.0%
[libx264 @ 0x1593eb0] coded y,uvDC,uvAC intra: 39.5% 48.7% 21.3% inter: 11.2% 12.9% 1.6%
[libx264 @ 0x1593eb0] i16 v,h,dc,p: 37% 34% 15% 14%
[libx264 @ 0x1593eb0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 21% 37%  2%  3%  3%  3%  3%  3%
[libx264 @ 0x1593eb0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 16% 17%  7%  8%  7%  7%  7%  8%
[libx264 @ 0x1593eb0] i8c dc,h,v,p: 57% 24% 13%  6%
[libx264 @ 0x1593eb0] Weighted P-Frames: Y:2.2% UV:1.5%
[libx264 @ 0x1593eb0] ref P L0: 81.0%  8.4%  8.7%  1.8%  0.0%
[libx264 @ 0x1593eb0] ref B L0: 94.2%  5.3%  0.5%
[libx264 @ 0x1593eb0] ref B L1: 97.1%  2.9%
[libx264 @ 0x1593eb0] kb/s:588.12

可見這個測試視訊檔有 1440 個訊框 (Frame), 雖然只是 5MB 左右的視訊, 但 Pi Zero W 的運算效能不算高, 花了近半個小時才轉換完成. 


五. 其他常用 FFmpeg 指令 : 

書中列舉了幾個常用的 FFmpeg 指令, 紀錄如下 :

ffmpeg -h   (查詢 FFmpeg 命令列參數)
ffmpeg -i A.wav -acodec libmp3lame A.mp3 (將 wav 格式音訊轉成 mp3) 
ffmpeg -i A.ogg -acodec libmp3lame A.mp3 (將 ogg 格式音訊轉成 mp3)
ffmpeg -i A.ac3 -acodec libmp3lame A.mp3 (將 ac3 格式音訊轉成 mp3)
ffmpeg -i A.aac -acodec libmp3lame A.mp3 (將 aac 格式音訊轉成 mp3)


六. 移除 FFmpeg : 

移除 FFmpeg 指令如下 : 

sudo apt purge --autoremove -y ffmpeg

因我還要繼續測試 FFmpeg, 所以就留著別移除啦. 

沒有留言:

張貼留言