Recherche avancée

Médias (1)

Mot : - Tags -/book

Autres articles (76)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

Sur d’autres sites (13216)

  • No sounds on Apple devices after encoding videos [migrated]

    15 décembre 2013, par Ricardo

    I'm having a problem setting up a media server.
    Everything works just great except the sound of Apple devices, I'm not sure if that's something with "mute" on iOS or our codecs are just not compatible with iOS.

    OS :

    Ubuntu 12.04

    FFMPEG Config :

    ffmpeg version 0.10.8-7:0.10.8-1~lucid1 Copyright 2000-2013 the FFmpeg developers
     built on Sep  5 2013 19:50:14 with gcc 4.4.3
     configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.8-1~lucid1' --libdir=/usr/lib --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib --enable-shared --disable-static
     avcodec     configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.8-1~lucid1' --libdir=/usr/lib --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib --enable-shared --disable-static --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb
     libavutil      51. 35.100 / 51. 35.100
     libavcodec     53. 61.100 / 53. 61.100
     libavformat    53. 32.100 / 53. 32.100
     libavdevice    53.  4.100 / 53.  4.100
     libavfilter     2. 61.100 /  2. 61.100
     libswscale      2.  1.100 /  2.  1.100
     libswresample   0.  6.100 /  0.  6.100
     libpostproc    52.  0.100 / 52.  0.100
    Hyper fast Audio and Video encoder

    Codecs :

    D..... = Decoding supported
    .E.... = Encoding supported
    ..V... = Video codec
    ..A... = Audio codec
    ..S... = Subtitle codec
    ...S.. = Supports draw_horiz_band
    ....D. = Supports direct rendering method 1
    .....T = Supports weird frame truncation
    ------
    D V D  4xm             4X Movie
    D V D  8bps            QuickTime 8BPS video
    D A D  8svx_exp        8SVX exponential
    D A D  8svx_fib        8SVX fibonacci
     EV    a64multi        Multicolor charset for Commodore 64
     EV    a64multi5       Multicolor charset for Commodore 64, extended with 5th color (colram)
    DEA D  aac             Advanced Audio Coding
    D A D  aac_latm        AAC LATM (Advanced Audio Codec LATM syntax)
    D V D  aasc            Autodesk RLE
    DEA D  ac3             ATSC A/52A (AC-3)
     EA    ac3_fixed       ATSC A/52A (AC-3)
    D A D  adpcm_4xm       ADPCM 4X Movie
    DEA D  adpcm_adx       SEGA CRI ADX ADPCM
    D A D  adpcm_ct        ADPCM Creative Technology
    D A D  adpcm_ea        ADPCM Electronic Arts
    D A D  adpcm_ea_maxis_xa ADPCM Electronic Arts Maxis CDROM XA
    D A D  adpcm_ea_r1     ADPCM Electronic Arts R1
    D A D  adpcm_ea_r2     ADPCM Electronic Arts R2
    D A D  adpcm_ea_r3     ADPCM Electronic Arts R3
    D A D  adpcm_ea_xas    ADPCM Electronic Arts XAS
    D A D  adpcm_ima_amv   ADPCM IMA AMV
    D A D  adpcm_ima_apc   ADPCM IMA CRYO APC
    D A D  adpcm_ima_dk3   ADPCM IMA Duck DK3
    D A D  adpcm_ima_dk4   ADPCM IMA Duck DK4
    D A D  adpcm_ima_ea_eacs ADPCM IMA Electronic Arts EACS
    D A D  adpcm_ima_ea_sead ADPCM IMA Electronic Arts SEAD
    D A D  adpcm_ima_iss   ADPCM IMA Funcom ISS
    DEA D  adpcm_ima_qt    ADPCM IMA QuickTime
    D A D  adpcm_ima_smjpeg ADPCM IMA Loki SDL MJPEG
    DEA D  adpcm_ima_wav   ADPCM IMA WAV
    D A D  adpcm_ima_ws    ADPCM IMA Westwood
    DEA D  adpcm_ms        ADPCM Microsoft
    D A D  adpcm_sbpro_2   ADPCM Sound Blaster Pro 2-bit
    D A D  adpcm_sbpro_3   ADPCM Sound Blaster Pro 2.6-bit
    D A D  adpcm_sbpro_4   ADPCM Sound Blaster Pro 4-bit
    DEA D  adpcm_swf       ADPCM Shockwave Flash
    D A D  adpcm_thp       ADPCM Nintendo Gamecube THP
    D A D  adpcm_xa        ADPCM CDROM XA
    DEA D  adpcm_yamaha    ADPCM Yamaha
    DEA D  alac            ALAC (Apple Lossless Audio Codec)
    D A D  als             MPEG-4 Audio Lossless Coding (ALS)
    D A D  amrnb           Adaptive Multi-Rate NarrowBand
    D A D  amrwb           Adaptive Multi-Rate WideBand
    DEV    amv             AMV Video
    D V D  anm             Deluxe Paint Animation
    D V D  ansi            ASCII/ANSI art
    D A D  ape             Monkey's Audio
    DES    ass             Advanced SubStation Alpha subtitle
    DEV D  asv1            ASUS V1
    DEV D  asv2            ASUS V2
    D A D  atrac1          Atrac 1 (Adaptive TRansform Acoustic Coding)
    D A D  atrac3          Atrac 3 (Adaptive TRansform Acoustic Coding 3)
    D V D  aura            Auravision AURA
    D V D  aura2           Auravision Aura 2
    DEV D  avrp            Avid 1:1 10-bit RGB Packer
    D V D  avs             AVS (Audio Video Standard) video
    D V D  bethsoftvid     Bethesda VID video
    D V D  bfi             Brute Force & Ignorance
    D A D  binkaudio_dct   Bink Audio (DCT)
    D A D  binkaudio_rdft  Bink Audio (RDFT)
    D V    binkvideo       Bink video
    D V D  bintext         Binary text
    DEV D  bmp             BMP image
    D A D  bmv_audio       Discworld II BMV audio
    D V    bmv_video       Discworld II BMV video
    D V D  c93             Interplay C93
    D V D  camstudio       CamStudio
    D V D  camtasia        TechSmith Screen Capture Codec
    D V D  cavs            Chinese AVS video (AVS1-P2, JiZhun profile)
    D V D  cdgraphics      CD Graphics video
    D V D  cinepak         Cinepak
    DEV D  cljr            Cirrus Logic AccuPak
    D A D  cook            COOK
    D V D  cyuv            Creative YUV (CYUV)
    DEA D  dca             DCA (DTS Coherent Acoustics)
    D V D  dfa             Chronomaster DFA
    D V    dirac           BBC Dirac VC-2
    DEV D  dnxhd           VC3/DNxHD
    DEV    dpx             DPX image
    D A D  dsicinaudio     Delphine Software International CIN audio
    D V D  dsicinvideo     Delphine Software International CIN video
    DES    dvbsub          DVB subtitles
    DES    dvdsub          DVD subtitles
    DEV D  dvvideo         DV (Digital Video)
    D V D  dxa             Feeble Files/ScummVM DXA
    D V D  dxtory          Dxtory
    DEA D  eac3            ATSC A/52 E-AC-3
    D V D  eacmv           Electronic Arts CMV video
    D V D  eamad           Electronic Arts Madcow Video
    D V D  eatgq           Electronic Arts TGQ video
    D V    eatgv           Electronic Arts TGV video
    D V D  eatqi           Electronic Arts TQI Video
    D V D  escape124       Escape 124
    D V D  escape130       Escape 130
    DEV D  ffv1            FFmpeg video codec #1
    DEVSD  ffvhuff         Huffyuv FFmpeg variant
    DEA D  flac            FLAC (Free Lossless Audio Codec)
    DEV D  flashsv         Flash Screen Video
    DEV D  flashsv2        Flash Screen Video Version 2
    D V D  flic            Autodesk Animator Flic video
    DEVSD  flv             Flash Video (FLV) / Sorenson Spark / Sorenson H.263
    D V D  fraps           Fraps
    D V D  frwu            Forward Uncompressed
    DEA D  g722            G.722 ADPCM
    DEA    g723_1          G.723.1
    DEA D  g726            G.726 ADPCM
    D A D  g729            G.729
    DEV D  gif             GIF (Graphics Interchange Format)
    D A D  gsm             GSM
    D A D  gsm_ms          GSM Microsoft variant
    DEV D  h261            H.261
    DEVSDT h263            H.263 / H.263-1996
    D VSD  h263i           Intel H.263
     EV    h263p           H.263+ / H.263-1998 / H.263 version 2
    D V D  h264            H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    D V D  h264_vdpau      H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)
    DEVSD  huffyuv         Huffyuv / HuffYUV
    D V D  idcinvideo      id Quake II CIN video
    D V D  idf             iCEDraw text
    D V D  iff_byterun1    IFF ByteRun1
    D V D  iff_ilbm        IFF ILBM
    D A D  imc             IMC (Intel Music Coder)
    D V D  indeo2          Intel Indeo 2
    D V    indeo3          Intel Indeo 3
    D V    indeo4          Intel Indeo Video Interactive 4
    D V    indeo5          Intel Indeo Video Interactive 5
    D A D  interplay_dpcm  DPCM Interplay
    D V D  interplayvideo  Interplay MVE video
    DEV    j2k             JPEG 2000
    DEV D  jpegls          JPEG-LS
    D V D  jv              Bitmap Brothers JV video
    D V    kgv1            Kega Game Video
    D V D  kmvc            Karl Morton's video codec
    D V D  lagarith        Lagarith lossless
    DEA D  libgsm          libgsm GSM
    DEA D  libgsm_ms       libgsm GSM Microsoft variant
     EA    libmp3lame      libmp3lame MP3 (MPEG audio layer 3)
    DEA D  libopencore_amrnb OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band
    D A D  libopencore_amrwb OpenCORE Adaptive Multi-Rate (AMR) Wide-Band
    DEV D  libopenjpeg     OpenJPEG based JPEG 2000 encoder
    DEV    libschroedinger libschroedinger Dirac 2.2
    DEA D  libspeex        libspeex Speex
     EV    libtheora       libtheora Theora
     EA    libvorbis       libvorbis Vorbis
    DEV    libvpx          libvpx VP8
     EV    libx264         libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
     EV    libx264rgb      libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB
     EV    ljpeg           Lossless JPEG
    D V D  loco            LOCO
    D A D  mace3           MACE (Macintosh Audio Compression/Expansion) 3:1
    D A D  mace6           MACE (Macintosh Audio Compression/Expansion) 6:1
    D V D  mdec            Sony PlayStation MDEC (Motion DECoder)
    D V D  mimic           Mimic
    DEV D  mjpeg           MJPEG (Motion JPEG)
    D V D  mjpegb          Apple MJPEG-B
    D A D  mlp             MLP (Meridian Lossless Packing)
    D V D  mmvideo         American Laser Games MM Video
    D V D  motionpixels    Motion Pixels video
    D A D  mp1             MP1 (MPEG audio layer 1)
    D A D  mp1float        MP1 (MPEG audio layer 1)
    DEA D  mp2             MP2 (MPEG audio layer 2)
    D A D  mp2float        MP2 (MPEG audio layer 2)
    D A D  mp3             MP3 (MPEG audio layer 3)
    D A D  mp3adu          ADU (Application Data Unit) MP3 (MPEG audio layer 3)
    D A D  mp3adufloat     ADU (Application Data Unit) MP3 (MPEG audio layer 3)
    D A D  mp3float        MP3 (MPEG audio layer 3)
    D A D  mp3on4          MP3onMP4
    D A D  mp3on4float     MP3onMP4
    D A D  mpc7            Musepack SV7
    D A D  mpc8            Musepack SV8
    DEVSDT mpeg1video      MPEG-1 video
    D V DT mpeg1video_vdpau MPEG-1 video (VDPAU acceleration)
    DEVSDT mpeg2video      MPEG-2 video
    DEVSDT mpeg4           MPEG-4 part 2
    D V DT mpeg4_vdpau     MPEG-4 part 2 (VDPAU)
    D VSDT mpegvideo       MPEG-1 video
    D V DT mpegvideo_vdpau MPEG-1/2 video (VDPAU acceleration)
    D VSDT mpegvideo_xvmc  MPEG-1/2 video XvMC (X-Video Motion Compensation)
    DEVSD  msmpeg4         MPEG-4 part 2 Microsoft variant version 3
    D VSD  msmpeg4v1       MPEG-4 part 2 Microsoft variant version 1
    DEVSD  msmpeg4v2       MPEG-4 part 2 Microsoft variant version 2
    D V D  msrle           Microsoft RLE
    DEV D  msvideo1        Microsoft Video-1
    D V D  mszh            LCL (LossLess Codec Library) MSZH
    D V D  mxpeg           Mobotix MxPEG video
    DEA D  nellymoser      Nellymoser Asao
    D V D  nuv             NuppelVideo/RTJPEG
    DEV D  pam             PAM (Portable AnyMap) image
    DEV D  pbm             PBM (Portable BitMap) image
    DEA D  pcm_alaw        PCM A-law
    D A D  pcm_bluray      PCM signed 16|20|24-bit big-endian for Blu-ray media
    D A D  pcm_dvd         PCM signed 20|24-bit big-endian
    DEA D  pcm_f32be       PCM 32-bit floating point big-endian
    DEA D  pcm_f32le       PCM 32-bit floating point little-endian
    DEA D  pcm_f64be       PCM 64-bit floating point big-endian
    DEA D  pcm_f64le       PCM 64-bit floating point little-endian
    D A D  pcm_lxf         PCM signed 20-bit little-endian planar
    DEA D  pcm_mulaw       PCM mu-law
    DEA D  pcm_s16be       PCM signed 16-bit big-endian
    DEA D  pcm_s16le       PCM signed 16-bit little-endian
    D A D  pcm_s16le_planar PCM 16-bit little-endian planar
    DEA D  pcm_s24be       PCM signed 24-bit big-endian
    DEA D  pcm_s24daud     PCM D-Cinema audio signed 24-bit
    DEA D  pcm_s24le       PCM signed 24-bit little-endian
    DEA D  pcm_s32be       PCM signed 32-bit big-endian
    DEA D  pcm_s32le       PCM signed 32-bit little-endian
    DEA D  pcm_s8          PCM signed 8-bit
    D A D  pcm_s8_planar   PCM signed 8-bit planar
    DEA D  pcm_u16be       PCM unsigned 16-bit big-endian
    DEA D  pcm_u16le       PCM unsigned 16-bit little-endian
    DEA D  pcm_u24be       PCM unsigned 24-bit big-endian
    DEA D  pcm_u24le       PCM unsigned 24-bit little-endian
    DEA D  pcm_u32be       PCM unsigned 32-bit big-endian
    DEA D  pcm_u32le       PCM unsigned 32-bit little-endian
    DEA D  pcm_u8          PCM unsigned 8-bit
    D A D  pcm_zork        PCM Zork
    DEV D  pcx             PC Paintbrush PCX image
    DEV D  pgm             PGM (Portable GrayMap) image
    DEV D  pgmyuv          PGMYUV (Portable GrayMap YUV) image
    D S    pgssub          HDMV Presentation Graphic Stream subtitles
    D V D  pictor          Pictor/PC Paint
    DEV D  png             PNG image
    DEV D  ppm             PPM (Portable PixelMap) image
    DEV D  prores          Apple ProRes
    D V D  prores_lgpl     Apple ProRes (iCodec Pro)
    D V D  ptx             V.Flash PTX image
    D A D  qcelp           QCELP / PureVoice
    D A D  qdm2            QDesign Music Codec 2
    D V D  qdraw           Apple QuickDraw
    D V D  qpeg            Q-team QPEG
    DEV D  qtrle           QuickTime Animation (RLE) video
    DEV D  r10k            AJA Kona 10-bit RGB Codec
    DEV D  r210            Uncompressed RGB 10-bit
    DEV    rawvideo        raw video
    DEA D  real_144        RealAudio 1.0 (14.4K) encoder
    D A D  real_288        RealAudio 2.0 (28.8K)
    D V D  rl2             RL2 video
    DEA D  roq_dpcm        id RoQ DPCM
    DEV D  roqvideo        id RoQ video
    D V D  rpza            QuickTime video (RPZA)
    DEV D  rv10            RealVideo 1.0
    DEV D  rv20            RealVideo 2.0
    D V D  rv30            RealVideo 3.0
    D V D  rv40            RealVideo 4.0
    D A D  s302m           SMPTE 302M
    DEV    sgi             SGI image
    D A D  shorten         Shorten
    D A D  sipr            RealAudio SIPR / ACELP.NET
    D A D  smackaud        Smacker audio
    D V D  smackvid        Smacker video
    D V D  smc             QuickTime Graphics (SMC)
    DEV D  snow            Snow
    D A D  sol_dpcm        DPCM Sol
    DEA D  sonic           Sonic
     EA    sonicls         Sonic lossless
    D V D  sp5x            Sunplus JPEG (SP5X)
    DES    srt             SubRip subtitle
    D V D  sunrast         Sun Rasterfile image
    DEV D  svq1            Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
    D VSD  svq3            Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3
    DEV D  targa           Truevision Targa image
    D VSD  theora          Theora
    D V D  thp             Nintendo Gamecube THP video
    D V D  tiertexseqvideo Tiertex Limited SEQ video
    DEV D  tiff            TIFF image
    D V D  tmv             8088flex TMV
    D A D  truehd          TrueHD
    D V D  truemotion1     Duck TrueMotion 1.0
    D V D  truemotion2     Duck TrueMotion 2.0
    D A D  truespeech      DSP Group TrueSpeech
    D A D  tta             True Audio (TTA)
    D A D  twinvq          VQF TwinVQ
    D V D  txd             Renderware TXD (TeXture Dictionary) image
    D V D  ultimotion      IBM UltiMotion
    D V D  utvideo         Ut Video
    DEV D  v210            Uncompressed 4:2:2 10-bit
    D V D  v210x           Uncompressed 4:2:2 10-bit
    DEV D  v308            Uncompressed packed 4:4:4
    DEV D  v410            Uncompressed 4:4:4 10-bit
    D V    vb              Beam Software VB
    D V D  vble            VBLE Lossless Codec
    D V D  vc1             SMPTE VC-1
    D V D  vc1_vdpau       SMPTE VC-1 VDPAU
    D V D  vc1image        Windows Media Video 9 Image v2
    D V D  vcr1            ATI VCR1
    D A D  vmdaudio        Sierra VMD audio
    D V D  vmdvideo        Sierra VMD video
    D V D  vmnc            VMware Screen Codec / VMware Video
    DEA D  vorbis          Vorbis
    D VSD  vp3             On2 VP3
    D V D  vp5             On2 VP5
    D V D  vp6             On2 VP6
    D V D  vp6a            On2 VP6 (Flash version, with alpha channel)
    D V D  vp6f            On2 VP6 (Flash version)
    D V D  vp8             On2 VP8
    D V D  vqavideo        Westwood Studios VQA (Vector Quantized Animation) video
    D A D  wavesynth       Wave synthesis pseudo-codec
    D A D  wavpack         WavPack
    D A    wmalossless     Windows Media Audio 9 Lossless
    D A D  wmapro          Windows Media Audio 9 Professional
    DEA D  wmav1           Windows Media Audio 1
    DEA D  wmav2           Windows Media Audio 2
    D A D  wmavoice        Windows Media Audio Voice
    DEVSD  wmv1            Windows Media Video 7
    DEVSD  wmv2            Windows Media Video 8
    D V D  wmv3            Windows Media Video 9
    D V D  wmv3_vdpau      Windows Media Video 9 VDPAU
    D V D  wmv3image       Windows Media Video 9 Image
    D V D  wnv1            Winnov WNV1
    D A D  ws_snd1         Westwood Audio (SND1)
    D A D  xan_dpcm        DPCM Xan
    D V D  xan_wc3         Wing Commander III / Xan
    D V D  xan_wc4         Wing Commander IV / Xxan
    D V D  xbin            eXtended BINary text
    D V D  xl              Miro VideoXL
    DES    xsub            DivX subtitles (XSUB)
    DEV D  xwd             XWD (X Window Dump) image
    DEV D  y41p            Uncompressed YUV 4:1:1 12-bit
    D V    yop             Psygnosis YOP Video
    DEV D  yuv4            Uncompressed packed 4:2:0
    DEV D  zlib            LCL (LossLess Codec Library) ZLIB
    DEV D  zmbv            Zip Motion Blocks Video

    Library we use to convert :

    public function getAvailableAudioCodecs()
       {
           return array('libvo_aacenc', 'libfaac', 'libmp3lame');
       }

    By default I use 'libmp3lame' now because 'libfaac' is not supported by ffmpeg
    and when Im trying to encode sound by libfaac I'm getting that codec not found

    Thanks in advance !

  • ffmpeg : handle videos with changing resolution

    5 mars 2021, par mSourire

    I write a program, which concatenates input list of videos programmatically. The problem is that these videos are parts of a recorded stream, and their resolution may change few times within the same file.
Currently, if that happens, ffmpeg fails, saying that it's not possible to concat files with different resolutions. Is there a way to make ffmpeg handling this automatically ? A good solution would be selective scaling of frames with unexpected resolution.

    


    Here is a listing :

    


    ffmpeg -y -i 1.mkv -i 1.mka
-max_muxing_queue_size 10000
-preset veryfast -r 30 -crf 20 -b:a 96000 -vbr on
-strict experimental
-filter_complex '
color=black:s=320x240:d=7ms[black0];
aevalsrc=0:d=15ms[silence1];
[black0][0]concat=n=2:v=1:a=0[video];
[1][silence1]concat=n=2:v=0:a=1[audio]'
-map [video] -map [audio] -c:v libvpx -c:a libopus output.webm

ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1_9 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, matroska,webm, from '1.mkv':
  Metadata:
    encoder         : GStreamer matroskamux version 1.8.1.1
    creation_time   : 2021-03-02T13:44:03.000000Z
  Duration: 00:01:48.41, start: 0.710000, bitrate: 757 kb/s
    Stream #0:0(eng): Video: vp8, yuv420p(progressive), 320x240, SAR 1:1 DAR 4:3, 120 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      title           : Video
Input #1, matroska,webm, from '1.mka':
  Metadata:
    encoder         : GStreamer matroskamux version 1.8.1.1
    creation_time   : 2021-03-02T13:44:03.000000Z
  Duration: 00:01:48.40, start: 0.703000, bitrate: 38 kb/s
    Stream #1:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      title           : Audio
Codec AVOption preset (Configuration preset) specified for output file #0 (output.webm) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 (vp8) -> concat:in1:v0
  Stream #1:0 (opus) -> concat:in0:a0
  concat -> Stream #0:0 (libvpx)
  concat -> Stream #0:1 (libopus)
Press [q] to stop, [?] for help
[libvpx @ 0x7fe08a80bc00] v1.9.0
[libvpx @ 0x7fe08a80bc00] Bitrate not specified for constrained quality mode, using default of 256kbit/sec
Output #0, webm, to 'output.webm':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: vp8 (libvpx), yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 256 kb/s, 30 fps, 1k tbn, 30 tbc (default)
    Metadata:
      encoder         : Lavc58.91.100 libvpx
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1: Audio: opus (libopus), 48000 Hz, stereo, flt, 96 kb/s (default)
    Metadata:
      encoder         : Lavc58.91.100 libopus
[Parsed_color_0 @ 0x7fe089815940] EOF timestamp not reliable
[Parsed_concat_2 @ 0x7fe088501980] Input link in0:v0 parameters (size 640x480, SAR 1:1) do not match the corresponding output link in0:v0 parameters (320x240, SAR 1:1)
[Parsed_concat_2 @ 0x7fe088501980] Failed to configure output pad on Parsed_concat_2
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
[libopus @ 0x7fe08a810c00] 1 frames left in the queue on closing
Conversion failed!


    


    Here is the only such video with "floating" resolution, which cannot be concatenated with 320x240 color filter.

    


  • Video fingerprinting not working for the video

    2 septembre 2024, par Veer Pratap

    I implemented video fingerprinting, and it works well when the videos are exactly the same, producing a similarity score of 1. However, I encounter an issue when comparing videos that have been merged in different orders. For instance, if I merge video1 and video2 to create a new video and then merge them in reverse order (video2 + video1), the system fails to detect any matching frames between the two resulting videos.

    


    The challenge lies in comparing frames between videos regardless of their timing or order. How can I modify the comparison process to ensure that frames are matched correctly even when the order of video segments changes ?

    


    use ffmpeg_next::{codec, format, frame, media, packet, Error};&#xA;use sha2::{Digest, Sha256};&#xA;use std::collections::HashSet;&#xA;&#xA;pub fn extract_frames(video_path: &amp;str) -> Result>, Error> {&#xA;    ffmpeg_next::init()?;&#xA;    let mut ictx = format::input(&amp;video_path)?;&#xA;    let input_stream_index = ictx&#xA;        .streams()&#xA;        .best(media::Type::Video)&#xA;        .ok_or(Error::StreamNotFound)?&#xA;        .index();&#xA;    let codec_params = ictx&#xA;        .stream(input_stream_index)&#xA;        .ok_or(Error::StreamNotFound)?&#xA;        .parameters();&#xA;    let codec = codec::Id::from(codec_params.id());&#xA;    let mut decoder = codec::Context::from_parameters(codec_params)?&#xA;        .decoder()&#xA;        .video()?;&#xA;    let mut frame = frame::Video::empty();&#xA;    let mut frames = Vec::new();&#xA;    let mut packet_count = 0;&#xA;    let mut frame_count = 0;&#xA;&#xA;    for (stream, packet) in ictx.packets() {&#xA;        packet_count &#x2B;= 1;&#xA;        if stream.index() == input_stream_index {&#xA;            decoder.send_packet(&amp;packet)?;&#xA;            while let Ok(()) = decoder.receive_frame(&amp;mut frame) {&#xA;                let frame_data = frame.data(0).to_vec();&#xA;                frames.push(frame_data);&#xA;                frame_count &#x2B;= 1;&#xA;                eprintln!("Extracted frame {}", frame_count);&#xA;            }&#xA;        }&#xA;    }&#xA;    eprintln!(&#xA;        "Processed {} packets and extracted {} frames",&#xA;        packet_count, frame_count&#xA;    );&#xA;    Ok(frames)&#xA;}&#xA;&#xA;pub fn hash_frame(frame: &amp;[u8]) -> Vec<u8> {&#xA;    let mut hasher = Sha256::new();&#xA;    hasher.update(frame);&#xA;    hasher.finalize().to_vec()&#xA;}&#xA;&#xA;/// Generates a vector of fingerprints for the given video frames.&#xA;///&#xA;/// This function takes a vector of frames (each represented as a vector of bytes)&#xA;/// and generates a fingerprint for each frame using the SHA-256 hash function.&#xA;///&#xA;/// # Arguments&#xA;///&#xA;/// * `frames` - A vector of video frames, where each frame is a `Vec<u8>` representing the frame&#x27;s raw data.&#xA;///&#xA;/// # Returns&#xA;///&#xA;/// * `Vec>` - A vector of fingerprints, where each fingerprint is a `Vec<u8>` representing the SHA-256 hash of the corresponding frame.&#xA;pub fn generate_fingerprints(frames: Vec>) -> Vec> {&#xA;    frames.into_iter().map(|frame| hash_frame(&amp;frame)).collect()&#xA;}&#xA;&#xA;/// Compares two videos by extracting frames and generating fingerprints, then computing the similarity between the two sets of fingerprints.&#xA;///&#xA;/// This function extracts frames from the two provided video files, generates fingerprints for each frame,&#xA;/// and compares the fingerprints to determine the similarity between the two videos.&#xA;///&#xA;/// # Arguments&#xA;///&#xA;/// * `video_path1` - A string slice that holds the path to the first video file.&#xA;/// * `video_path2` - A string slice that holds the path to the second video file.&#xA;///&#xA;/// # Returns&#xA;///&#xA;/// * `Result>` - The similarity score between the two videos as a floating-point value (0.0 to 1.0).&#xA;///    Returns an error if there is an issue with extracting frames or generating fingerprints.&#xA;///&#xA;/// # Errors&#xA;///&#xA;/// This function will return an error if:&#xA;/// * There is an issue with opening or reading the video files.&#xA;/// * There is an issue with extracting frames from the video files.&#xA;/// * There is an issue with generating fingerprints from the frames.&#xA;pub fn compare_videos(&#xA;    video_path1: &amp;str,&#xA;    video_path2: &amp;str,&#xA;) -> Result> {&#xA;    println!("Comparing videos: {} and {}", video_path1, video_path2);&#xA;    let frames1 = extract_frames(video_path1)?;&#xA;    let frames2 = extract_frames(video_path2)?;&#xA;&#xA;    let fingerprints1: HashSet&lt;_> = generate_fingerprints(frames1).into_iter().collect();&#xA;    let fingerprints2: HashSet&lt;_> = generate_fingerprints(frames2).into_iter().collect();&#xA;&#xA;    println!("Number of fingerprints in video 1: {}", fingerprints1.len());&#xA;    println!("Number of fingerprints in video 2: {}", fingerprints2.len());&#xA;&#xA;    if !fingerprints1.is_empty() &amp;&amp; !fingerprints2.is_empty() {&#xA;        println!(&#xA;            "Sample fingerprint from video 1: {:?}",&#xA;            fingerprints1.iter().take(1).collect::>()&#xA;        );&#xA;        println!(&#xA;            "Sample fingerprint from video 2: {:?}",&#xA;            fingerprints2.iter().take(1).collect::>()&#xA;        );&#xA;    }&#xA;&#xA;    // Calculate Jaccard similarity&#xA;    let intersection_size = fingerprints1.intersection(&amp;fingerprints2).count();&#xA;    let union_size = fingerprints1.union(&amp;fingerprints2).count();&#xA;&#xA;    println!("Intersection size: {}", intersection_size);&#xA;    println!("Union size: {}", union_size);&#xA;&#xA;    let similarity = if union_size == 0 {&#xA;        0.0&#xA;    } else {&#xA;        intersection_size as f64 / union_size as f64&#xA;    };&#xA;&#xA;    println!("Similarity score: {}", similarity);&#xA;&#xA;    Ok(similarity)&#xA;}&#xA;&#xA;</u8></u8></u8>

    &#xA;