Recherche avancée

Médias (0)

Mot : - Tags -/clipboard

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (38)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (5120)

  • Accessing webcam raw video using ffmpeg

    30 août 2016, par DeniseT

    I am trying to access the RAW video data from a CCD webcam to eliminate the usual in-camera processing for my science project. However, I do not wish to modify the firmware of my webcam due to the fear of damaging it.

    Is there a way to capture and save the RAW video stream of the webcam using ffmpeg ? I’m still trying my best to learn more abut ffmpeg and coding in general so please don’t be too harsh on me :(

    Thousand of thanks in advance !

  • FFMPEG Unable to Decode Quicktime QDMC Stream (No decoder for stream)

    9 janvier 2017, par mbmast

    We are using FFMPEG to convert iPhone video to MP4. This requires an AAC decoder which is not included in any binary distributions of FFMPEG (due to licensing issues). The solution is to download the FFMPEG source and compile it yourself. I’ve done this, apparently incorrectly, as I cannot decode the audio stream. I am getting this error :

    /usr/ffmpeg_builds/ffmpeg -y -i /home/domain/public_html/wp-content/uploads/celebs/main/step-2.mov -threads 12 -vcodec libx264 -acodec libfdk_aac -b:v 1000k -refs 6 -coder 1 -sc_threshold 40 -flags +loop -me_range 16 -subq 7 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -trellis 1 -b:a 128k -pass 1 -passlogfile /tmp/ffmpeg-passes57a054ee917c4ahl3t/pass-57a054ee91965 /home/domain/public_html/wp-content/uploads/celebs/main/testing-5.mp4
    ffmpeg version N-81827-g81bab10 Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)
     configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libx264
     libavutil      55. 32.100 / 55. 32.100
     libavcodec     57. 60.100 / 57. 60.100
     libavformat    57. 51.102 / 57. 51.102
     libavdevice    57.  0.102 / 57.  0.102
     libavfilter     6. 63.100 /  6. 63.100
     libswscale      4.  1.100 /  4.  1.100
     libswresample   2.  2.100 /  2.  2.100
     libpostproc    54.  0.100 / 54.  0.100
    Guessed Channel Layout for Input Stream #0.1 : mono
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/domain/public_html/wp-content/uploads/celebs/main/step-2.mov':
     Metadata:
       creation_time   : 1998-11-04T16:40:13.000000Z
     Duration: 00:01:00.83, start: 0.000000, bitrate: 110 kb/s
       Stream #0:0(eng): Video: svq1 (SVQ1 / 0x31515653), yuv410p, 160x120, 90 kb/s, 7.51 fps, 7.50 tbr, 600 tbn, 600 tbc (default)
       Metadata:
         creation_time   : 1998-11-04T16:40:13.000000Z
         handler_name    : Apple Alias Data Handler
         encoder         : Sorenson Video
       Stream #0:1(eng): Audio: qdmc (QDMC / 0x434D4451), 44100 Hz, mono (default)
       Metadata:
         creation_time   : 1998-11-04T16:40:13.000000Z
         handler_name    : Apple Alias Data Handler
    No decoder for stream #0:1, filtering impossible
    Error opening filters!

    I suspect that I failed to compile and include the correct codec library when I built FFMPEG. The problem is I don’t know which library I should have built/included. I haven’t found anything that says to decode QDMC audio in FFMPEG you need the XXXXX library.

    Here’s the complete list of decoders that my build supports :

    /usr/ffmpeg_builds/ffmpeg -decoders
    ffmpeg version N-81827-g81bab10 Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)
     configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libx264
     libavutil      55. 32.100 / 55. 32.100
     libavcodec     57. 60.100 / 57. 60.100
     libavformat    57. 51.102 / 57. 51.102
     libavdevice    57.  0.102 / 57.  0.102
     libavfilter     6. 63.100 /  6. 63.100
     libswscale      4.  1.100 /  4.  1.100
     libswresample   2.  2.100 /  2.  2.100
     libpostproc    54.  0.100 / 54.  0.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 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....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 cljr                 Cirrus Logic AccuPak
    V....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 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)
    VF...D fraps                Fraps
    V....D frwu                 Forward Uncompressed
    V....D g2m                  Go2Meeting
    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...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
    VFS..D hap                  Vidvox Hap decoder
    VFS..D hevc                 HEVC (High Efficiency Video Coding)
    V....D hnm4video            HNM 4 video
    V....D hq_hqa               Canopus HQ/HQA
    V.S..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 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
    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.S.BD mpeg2video           MPEG-2 video
    V.S.BD mpegvideo            MPEG-1 video (codec mpeg2video)
    VF..BD mpeg4                MPEG-4 part 2
    V....D msa1                 MS ATC Screen
    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
    V....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 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 png                  PNG (Portable Network Graphics) image
    V....D ppm                  PPM (Portable PixelMap) image
    V.S..D prores               ProRes
    V.S..D prores_lgpl          Apple ProRes (iCodec Pro) (codec prores)
    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..... 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 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 sunrast              Sun Rasterfile image
    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....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
    VF...D vp9                  Google VP9
    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....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 xwd                  XWD (X Window Dump) image
    V....D y41p                 Uncompressed YUV 4:1:1 12-bit
    V....D ylc                  YUY2 Lossless Codec
    V..... yop                  Psygnosis YOP Video
    V....D yuv4                 Uncompressed packed 4:2:0
    V....D zerocodec            ZeroCodec Lossless Video
    V....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 libfdk_aac           Fraunhofer FDK AAC (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 atrac1               ATRAC1 (Adaptive TRansform Acoustic Coding)
    A....D atrac3               ATRAC3 (Adaptive TRansform Acoustic Coding 3)
    A....D atrac3plus           ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) (codec atrac3p)
    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....D comfortnoise         RFC 3389 comfort noise generator
    A....D cook                 Cook / Cooker / Gecko (RealAudio G2)
    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 gsm                  GSM
    A....D gsm_ms               GSM Microsoft variant
    A....D iac                  IAC (Indeo Audio Coder)
    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 mp3                  MP3 (MPEG audio layer 3)
    A....D mp3float             MP3 (MPEG audio layer 3) (codec mp3)
    A....D mp3adu               ADU (Application Data Unit) MP3 (MPEG audio layer 3)
    A....D mp3adufloat          ADU (Application Data Unit) MP3 (MPEG audio layer 3) (codec mp3adu)
    A....D mp3on4               MP3onMP4
    A....D mp3on4float          MP3onMP4 (codec mp3on4)
    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 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_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_zork             PCM Zork
    A....D qcelp                QCELP / PureVoice
    A....D qdm2                 QDesign Music Codec 2
    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 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
    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....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..... dvdsub               DVD subtitles (codec dvd_subtitle)
    S..... cc_dec               Closed Caption (EIA-608 / CEA-708) Decoder (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

    Any idea what I did wrong when building FFMPEG ?

    Here’s a link to the video file that caused the problem : step-2.mov

  • Subtitling Sierra VMD Files

    1er juin 2016, par Multimedia Mike — Game Hacking

    I was contacted by a game translation hobbyist from Spain (henceforth known as The Translator). He had set his sights on Sierra’s 7-CD Phantasmagoria. This mammoth game was driven by a lot of FMV files and animations that have speech. These require language translation in the form of video subtitling. He’s lucky that he found possibly the one person on the whole internet who has just the right combination of skill, time, and interest to pull this off. And why would I care about helping ? I guess I share a certain camaraderie with game hackers. Don’t act so surprised. You know what kind of stuff I like to work on.

    The FMV format used in this game is VMD, which makes an appearance in numerous Sierra titles. FFmpeg already supports decoding this format. FFmpeg also supports subtitling video. So, ideally, all that’s necessary to support this goal is to add a muxer for the VMD format which can encode raw video and audio, which the format supports. Implement video compression as extra credit.

    The pipeline that I envisioned looks like this :


    VMD Subtitling Process

    VMD Subtitling Process


    “Trivial !” I surmised. I just never learn, do I ?

    The Plan
    So here’s my initial pitch, outlining the work I estimated that I would need to do towards the stated goal :

    1. Create a new file muxer that produces a syntactically valid VMD file with bogus video and audio data. Make sure it works with both FFmpeg’s playback system as well as the proper Phantasmagoria engine.
    2. Create a new video encoder that essentially operates in pass-through mode while correctly building a palette.
    3. Create a new basic encoder for the video frames.

    A big unknown for me was exactly how subtitle handling operates in FFmpeg. Thanks to this project, I now know. I was concerned because I was pretty sure that font rendering entails anti-aliasing which bodes poorly for keeping the palette count under 256 unique colors.

    Computer Science Puzzle
    When pondering how to process the palette, I was excited for the opportunity to exercise actual computer science. FFmpeg converts frames from paletted frames to full RGB frames. Then it needs to convert them back to paletted frames. I had a vague recollection of solving this problem once before when I was experimenting with a new paletted video codec. I seem to recall that I did the palette conversion in a very naive manner. I just used a static 256-element array and processed each RGB pixel of the frame, seeing if the value already occurred in the table (O(n) lookup) and adding it otherwise.

    There are more efficient algorithms, however, such as hash tables and trees. Somewhere along the line, FFmpeg helpfully acquired a rarely-used tree data structure, which was perfect for this project.

    So I was pretty pleased with this optimization. Too bad this wouldn’t survive to the end of the effort.

    Another palette-related challenge was the fact that a group of pictures would be accumulating a new palette but that palette needed to be recorded before the group. Thus, the muxer needed to have extra logic to rewind the file when the video encoder transmitted a palette change.

    Video Compression
    VMD has a few methods in its compression toolbox. It can use interframe differencing, it has some RLE, or it can code a frame raw. It can also use a custom LZ-like format on top of these. For early prototypes, I elected to leave each frame coded raw. After the concept was proved, I implemented the frame differencing.


    VMD frame #1

    VMD frame #2

    VMD frame difference
    Top frame compared with the middle frame yields the bottom frame : red pixels indicate changes

    Encoding only those red dots in between vast runs of unchanged pixels yielded a vast measurable improvement. The next step was to try wiring up FFmpeg’s existing LZ compression facilities to the encoder. This turned out to be implausible since VMD’s LZ variant has nothing to do with anything FFmpeg already provides. Fortunately, the LZ piece is not absolutely required and the frame differencing + RLE provides plenty of compression.

    Subtitling
    I’ve never done anything, multimedia programming-wise, concerning subtitles. I guess all the entertainment I care about has always been in my native tongue. What a good excuse to program outside of my comfort zone !

    First, I needed to know how to access FFmpeg’s subtitling facilities. Fortunately, The Translator did the legwork on this matter so I didn’t have to figure it out.

    However, I intuitively had misgivings about this phase. I had heard that the subtitling process performs anti-aliasing. That means that the image would need to be promoted to a higher colorspace for this phase and that the anti-aliasing process would likely push the color count way past 256. Some quick tests revealed this to be the case, as the running color count would leap by several hundred colors as soon as the palette accounting algorithm encountered a subtitle.

    So I dug into the subtitle subsystem. I discovered that the subtitle library operates by creating a linked list of subtitle bitmaps that the client app must render. The bitmaps are comprised of 8-bit alpha transparency values that must be composited onto the target frame (i.e., 0 = transparent, 255 = 100% opaque). For example, the letter ‘H’ :

                                      (with 00s removed)
    13 F8 41 00 00 00 00 68 E4  |  13 F8 41             68 E4    
    14 FF 44 00 00 00 00 6C EC  |  14 FF 44             6C EC
    14 FF 44 00 00 00 00 6C EC  |  14 FF 44             6C EC
    14 FF 44 00 00 00 00 6C EC  |  14 FF 44             6C EC
    14 FF DC D0 D0 D0 D0 E4 EC  |  14 FF DC D0 D0 D0 D0 E4 EC
    14 FF 7E 50 50 50 50 9A EC  |  14 FF 7E 50 50 50 50 9A EC
    14 FF 44 00 00 00 00 6C EC  |  14 FF 44             6C EC
    14 FF 44 00 00 00 00 6C EC  |  14 FF 44             6C EC
    14 FF 44 00 00 00 00 6C EC  |  14 FF 44             6C EC
    11 E0 3B 00 00 00 00 5E CE  |  11 E0 3B             5E CE
    

    To get around the color explosion problem, I chose a threshold value and quantized values above and below to 255 and 0, respectively. Further, the process chooses an appropriate color from the existing palette rather than introducing any new colors.

    Muxing Matters
    In order to force VMD into a general purpose media framework, a lot of special information needs to be passed around. Like many paletted codecs, the palette needs to be transmitted from the file demuxer to the video decoder via some side channel. For re-encoding, this also implies that the palette needs to make the trip from the video encoder to the file muxer. As if this wasn’t enough, individual VMD frames have even more data that needs to be ferried between the muxer and codec levels, including frame change boundaries. FFmpeg provides methods to do these things, but I could not always rely on the systems to relay the data in all cases. I was probably doing something wrong ; I accept that. Instead, I just packed all the information at the front of an encoded frame and split it apart in the muxer.

    I could not quite figure out how to get the audio and video muxed correctly. As a result, neither FFmpeg nor the Phantasmagoria engine could replay the files correctly.

    Plan B
    Since I was having so much trouble creating an entirely new VMD file, likely due to numerous unknown bits of the file format, I thought of another angle : re-use the existing VMD file. For this approach, I kept the video encoder and file muxer that I created in the initial phase, but modified the file muxer to emit a special intermediate file. Then, I created a Python tool to repackage the original VMD file using compressed video data in the intermediate file.

    For this phase, I also implemented a command line switch for FFmpeg to disable subtitle blending, to make the feature feel like less of an unofficial hack, as though this nonsense would ever have a chance of being incorporated upstream.

    At this point, I was seeing some success with the complete, albeit roundabout, subtitling process. I constructed a subtitle file using “Spanish I Learned From Mexican Telenovelas” and the frames turned out fairly readable :


    Le puso los cuernos a él

    “she cheated on him”


    es un desgraciado

    “he’s a scumbag” … these random subtitles could fit surprisingly well !


    The few files that I tested appeared to work fine. But then I handed off my work to The Translator and he immediately found a bunch of problems. According to my notes, the problems mostly took the form of flashing, solid color frames. Further, I found tiny, mostly imperceptible flaws in my RLE compressor, usually only detectable by running strict comparison tools ; but I wasn’t satisfied.

    At this point, I think I attempted to just encode the entire palette at the front of each frame, as allowed by the format, but that did not seem to fix any problems. My notes are not completely clear on this matter (likely because I was still trying to figure out the exact problem), but I think it had to do with FFmpeg inserting extra video frames in order to even out gaps in the video framerate.

    Sigh, Plan C
    At this point, I was getting tired of trying to force FFmpeg to do this. So I decided to minimize its involvement using lessons learned up to this point.

    The next pitch :

    1. Create a new C program that can open an existing VMD file and output an identical VMD file. I know this sounds easy, but the specific method of copying entails interpreting individual parts of the file and writing those individual parts to the new file. This is in preparation for…
    2. Import the VMD video decoder functions directly into the program to decode the individual video frames and re-encode them, replacing the video frames as the file is rewritten.
    3. Wire up the subtitle system. During the adventure to disable subtitle blending, I accidentally learned enough about interfacing to the subtitle library to just invoke it directly.
    4. Rewrite the RLE method so that it is 100% correct.

    Off to work I went. That part about lifting the existing VMD decoder functions out of their libavcodec nest turned out to not be that straightforward. As an alternative, I modified the decoder to dump the raw frames to an intermediate file. In doing so, I think I was able to avoid the issue of the duplicated frames that plagued the previous efforts.

    Also, remember how I was really pleased with the palette conversion technique in which I was able to leverage computer science big-O theory ? By this stage, I had no reason to convert the paletted video to RGB in the first place ; all of the decoding, subtitling and re-encoding operates in the paletted colorspace.

    This approach seemed to work pretty well. The final program is subtitle-vmd.c. The process is still a little weird. The modifications in my own FFmpeg fork are necessary to create an intermediate file that the new C tool can operate with.

    Next Steps
    The Translator has found some assorted bugs and corner cases that still need to be ironed out. Further, for extra credit, I need find the change windows for each frame to improve compression just a little more. I don’t think I will be trying for LZ compression, though.

    However, almost as soon as I had this whole system working, The Translator informed me that there is another, different movie format in play in the Phantasmagoria engine called ROBOT, with an extension of RBT. Fortunately, enough of the algorithms have been reverse engineered and re-implemented in ScummVM that I was able to sort out enough details for another subtitling project. That will be the subject of a future post.

    See Also :

    The post Subtitling Sierra VMD Files first appeared on Breaking Eggs And Making Omelettes.