Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (88)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Le plugin : Gestion de la mutualisation

    2 mars 2010, par

    Le plugin de Gestion de mutualisation permet de gérer les différents canaux de mediaspip depuis un site maître. Il a pour but de fournir une solution pure SPIP afin de remplacer cette ancienne solution.
    Installation basique
    On installe les fichiers de SPIP sur le serveur.
    On ajoute ensuite le plugin "mutualisation" à la racine du site comme décrit ici.
    On customise le fichier mes_options.php central comme on le souhaite. Voilà pour l’exemple celui de la plateforme mediaspip.net :
    < ?php (...)

Sur d’autres sites (8063)

  • Correct usage of fdkaac for liquidsoap->icecast

    1er février 2024, par user4893295

    Can't seem to get aac working using fdkaac with liquidsoap. It just seems to shutdown.

    &#xA;

    TBF I have no idea which aot or transmux to use for "normal" icecast stuff. mp3 works fine, and the icecast server works fine with aac from other sources (BUTT etc).

    &#xA;

    This is my starting point from the liquidsoap cookbook :

    &#xA;

    %fdkaac(channels=2, samplerate=44100, bandwidth="auto", bitrate=64, afterburner=false, aot="mpeg2_he_aac_v2", transmux="adts", sbr_mode=false)&#xA;

    &#xA;

    And this is my output from liquidsoap :

    &#xA;

    2024/02/01 20:49:05 [clock:3] Using native (high-precision) implementation for latency control&#xA;2024/02/01 20:49:07 [main:3] Standard library loaded in 1.64 seconds.&#xA;2024/02/01 20:49:07 [lang:2] WARNING: "set" is deprecated and will be removed in future version. Please use `settings.path.to.key := value`&#xA;2024/02/01 20:49:07 [lang:2] WARNING: "set" is deprecated and will be removed in future version. Please use `settings.path.to.key := value`&#xA;2024/02/01 20:49:07 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz main.&#xA;2024/02/01 20:49:07 [frame:3] Video frame size set to: 1280x720&#xA;2024/02/01 20:49:07 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.&#xA;2024/02/01 20:49:07 [frame:3] Targeting &#x27;frame.duration&#x27;: 0.04s = 1764 audio samples = 1764 ticks.&#xA;2024/02/01 20:49:07 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.&#xA;2024/02/01 20:49:07 [sandbox:3] Could not find binary bwrap, disabling sandboxing.&#xA;2024/02/01 20:49:07 [startup:3] DSSI plugins registration: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] FFmpeg filters registration: 0.02s&#xA;2024/02/01 20:49:07 [startup:3] FFmpeg bitstream filters registration: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] Lilv plugins registration: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] Frei0r plugin registration: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] LADSPA plugins registration: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] Typechecking: 1.36s&#xA;2024/02/01 20:49:07 [startup:3] Evaluation: 0.01s&#xA;2024/02/01 20:49:07 [startup:3] Typechecking: 0.02s&#xA;2024/02/01 20:49:07 [startup:3] Evaluation: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] Typechecking: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] Evaluation: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] Typechecking: 0.00s&#xA;2024/02/01 20:49:07 [startup:3] Evaluation: 0.08s&#xA;2024/02/01 20:49:07 [startup:3] Loaded /etc/liquidsoap/index.liq: 0.08s&#xA;2024/02/01 20:49:07 [64_aac:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [cross:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [on_track:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [promos.2:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [promos:3] Content type is {}.&#xA;2024/02/01 20:49:07 [current:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [music.3:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [music.2:3] Content type is {}.&#xA;2024/02/01 20:49:07 [music:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [safe_blank:3] Content type is {audio=pcm(stereo)}.&#xA;2024/02/01 20:49:07 [clock.main:3] Streaming loop starts in auto-sync mode&#xA;2024/02/01 20:49:07 [clock.main:3] Delegating synchronization to CPU clock&#xA;2024/02/01 20:49:07 [video.converter:3] Using preferred video converter: ffmpeg.&#xA;2024/02/01 20:49:07 [audio.converter:3] Using samplerate converter: libsamplerate.&#xA;2024/02/01 20:49:07 [video.text:3] Using sdl implementation&#xA;2024/02/01 20:49:07 [mksafe:3] Switch to safe_blank.&#xA;2024/02/01 20:49:07 [clock.main:2] Source 64_aac failed while streaming: Lang.Runtime_error { kind: "encoder", msg: "Invalid configuration: aot", pos: [at /etc/liquidsoap/index.liq, line 52, char 2-144] }!&#xA;2024/02/01 20:49:07 [clock.main:2] Raised at Liquidsoap_lang__Runtime_error.raise in file "src/lang/runtime_error.ml", line 48, characters 14-21&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Stdlib__List.iter in file "list.ml", line 110, characters 12-15&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Fdkaac_encoder.create_encoder in file "src/core/encoder/encoders/fdkaac_encoder.ml", line 69, characters 2-22&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Fdkaac_encoder.encoder in file "src/core/encoder/encoders/fdkaac_encoder.ml", line 73, characters 12-35&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Encoder.get_factory.(fun) in file "src/core/encoder/encoder.ml", line 344, characters 8-32&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Icecast2.output#icecast_start in file "src/core/outputs/icecast2.ml", line 555, characters 16-67&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Icecast2.output#send in file "src/core/outputs/icecast2.ml", line 544, characters 12-30&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Output.encoded#send_frame.output_chunks.f in file "src/core/outputs/output.ml", line 256, characters 10-24&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Output.output#output in file "src/core/outputs/output.ml", line 192, characters 45-70&#xA;2024/02/01 20:49:07 [clock.main:2] Called from Clock.MkClock.clock#end_tick.(fun) in file "src/core/clock.ml", line 318, characters 16-24&#xA;Incorrect BOM value&#xA;Error reading lyrics, skipped&#xA;2024/02/01 20:49:07 [clock.main:2]&#xA;[mp3 @ 0x7fd5ad428000] Estimating duration from bitrate, this may be inaccurate&#xA;2024/02/01 20:49:07 [decoder.ffmpeg:3] Requested content-type for "/data/dropbox/promos/current/24-7 promo 1 remix.mp3": {audio=pcm(stereo)}&#xA;2024/02/01 20:49:07 [decoder.ffmpeg:3] FFmpeg recognizes "/data/dropbox/promos/current/24-7 promo 1 remix.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}&#xA;2024/02/01 20:49:07 [decoder.ffmpeg:3] Decoded content-type for "/data/dropbox/promos/current/24-7 promo 1 remix.mp3": {audio=pcm(stereo)}&#xA;2024/02/01 20:49:07 [decoder.ffmpeg:3] Requested content-type for "/data/music/Bruno Mars - Locked out of Heaven.mp3": {audio=pcm(stereo)}&#xA;2024/02/01 20:49:07 [decoder.ffmpeg:3] FFmpeg recognizes "/data/music/Bruno Mars - Locked out of Heaven.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 640x640, yuvj444p}, video_2: {codec: mjpeg, 640x640, yuvj444p}&#xA;2024/02/01 20:49:07 [decoder.ffmpeg:3] Decoded content-type for "/data/music/Bruno Mars - Locked out of Heaven.mp3": {audio=pcm(stereo)}&#xA;Incorrect BOM value&#xA;Error reading lyrics, skipped&#xA;[mp3 @ 0x7fd5ad428000] Estimating duration from bitrate, this may be inaccurate&#xA;2024/02/01 20:49:07 [clock.main:3] Streaming loop stopped.&#xA;2024/02/01 20:49:07 [threads:3] Main loop exited&#xA;2024/02/01 20:49:07 [main:3] Shutdown started!&#xA;2024/02/01 20:49:07 [threads:3] Waiting for main threads to terminate...&#xA;2024/02/01 20:49:07 [threads:3] Main threads terminated.&#xA;2024/02/01 20:49:07 [threads:3] Shutting down scheduler...&#xA;2024/02/01 20:49:07 [threads:3] Scheduler shut down.&#xA;2024/02/01 20:49:07 [main:3] Cleaning downloaded files...&#xA;2024/02/01 20:49:07 [main:3] Freeing memory...&#xA;2024/02/01 20:49:07 >>> LOG END&#xA;

    &#xA;

    EDIT it does seem to be using video, which wouldn't help ? Looking at this bit :

    &#xA;

    2024/02/01 20:49:07 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz main.&#xA;2024/02/01 20:49:07 [frame:3] Video frame size set to: 1280x720&#xA;

    &#xA;

    But no idea why or how to stop that...

    &#xA;

  • first audio lost when using ffmpeg to overlay one mp4 on top of a big mp4

    11 septembre 2024, par James Hao

    I searched a lot (including chatgtp and google), and tried a lot of methods, not work.&#xA;below is my ffmpeg command line on windows 10 :

    &#xA;

    ffmpeg -i video.mp4 -i b-.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS[b1];[1:v]scale=300:-1,setpts=PTS-STARTPTS&#x2B;0.0/TB[top];[b1][top]overlay=x=50:y=50:enable=&#x27;between(t\,0.0,5)&#x27;[outv];[1:a]adelay=0|0[a1]; [0:a][a1]amerge=inputs=2[outa]" -map "[outv]" -map "[outa]" -pix_fmt yuv420p -c:a aac -ac 2 -c:v libx264 -crf 18 final_video6.mp4&#xA;

    &#xA;

    two mp4 files, b-.mp4 should be on top of video.mp4 and play from 0th second and scale to 300 :-1, [0:a][a1]amerge is to merge two audio from the mp4 files, using "-ac 2" to replace pan statement according to enter link description here

    &#xA;

    in result mp4 file, the audio from video.mp4 is lost ; sometimes with the same instruction, but replace b-.mp4 with another mp4 file, the audio may partially lost. any help will be very appreciated.&#xA;below is the console output from ffmpeg :

    &#xA;

    ffmpeg version 7.0.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers&#xA;  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;  libpostproc    58.  1.100 / 58.  1.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;video.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf61.1.100&#xA;  Duration: 00:00:09.40, start: 0.000000, bitrate: 72 kb/s&#xA;  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 854x480, 21 kb/s, 30 fps, 30 tbr, 15360 tbn (default)&#xA;      Metadata:&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;        encoder         : Lavc61.3.100 libx264&#xA;  Stream #0:1[0x2](und): Audio: mp3 (mp3float) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 47 kb/s (default)&#xA;      Metadata:&#xA;        handler_name    : SoundHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;Input #1, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;b-.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf59.27.100&#xA;  Duration: 00:00:05.29, start: 0.030000, bitrate: 325 kb/s&#xA;  Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 366x132, 196 kb/s, 25.15 fps, 50 tbr, 90k tbn (default)&#xA;      Metadata:&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;  Stream #1:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 139 kb/s (default)&#xA;      Metadata:&#xA;        handler_name    : SoundHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;Stream mapping:&#xA;  Stream #0:0 (h264) -> setpts:default&#xA;  Stream #0:1 (mp3float) -> amerge&#xA;  Stream #1:0 (h264) -> scale:default&#xA;  Stream #1:1 (aac) -> adelay:default&#xA;  overlay:default -> Stream #0:0 (libx264)&#xA;  amerge:default -> Stream #0:1 (aac)&#xA;Press [q] to stop, [?] for help&#xA;[Parsed_amerge_5 @ 000002a6613bf100] No channel layout for input 1&#xA;[vost#0:0/libx264 @ 000002a6612936c0] No information about the input framerate is available. Falling back to a default value of 25fps. Use the -r option if you want a different framerate.&#xA;[libx264 @ 000002a6612b8f40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2&#xA;[libx264 @ 000002a6612b8f40] profile High, level 3.0, 4:2:0, 8-bit&#xA;[libx264 @ 000002a6612b8f40] 264 - core 164 r3191 4613ac3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - 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=15 lookahead_threads=2 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=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00&#xA;Output #0, mp4, to &#x27;final_video6.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf61.1.100&#xA;  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 854x480, q=2-31, 25 fps, 12800 tbn&#xA;      Metadata:&#xA;        encoder         : Lavc61.3.100 libx264&#xA;      Side data:&#xA;        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A&#xA;  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s&#xA;      Metadata:&#xA;        encoder         : Lavc61.3.100 aac&#xA;[out#0/mp4 @ 000002a66105e640] video:93KiB audio:78KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 3.974328%&#xA;frame=  236 fps=0.0 q=-1.0 Lsize=     178KiB time=00:00:04.97 bitrate= 292.5kbits/s dup=0 drop=46 speed=16.9x&#xA;[libx264 @ 000002a6612b8f40] frame I:2     Avg QP: 4.89  size:  4803&#xA;[libx264 @ 000002a6612b8f40] frame P:63    Avg QP:14.43  size:   854&#xA;[libx264 @ 000002a6612b8f40] frame B:171   Avg QP:12.25  size:   181&#xA;[libx264 @ 000002a6612b8f40] consecutive B-frames:  2.1%  1.7%  6.4% 89.8%&#xA;[libx264 @ 000002a6612b8f40] mb I  I16..4: 86.1% 10.0%  3.8%&#xA;[libx264 @ 000002a6612b8f40] mb P  I16..4:  0.3%  0.1%  0.3%  P16..4:  1.4%  0.6%  0.1%  0.0%  0.0%    skip:97.1%&#xA;[libx264 @ 000002a6612b8f40] mb B  I16..4:  0.0%  0.0%  0.1%  B16..8:  1.4%  0.3%  0.0%  direct: 0.0%  skip:98.1%  L0:52.4% L1:39.0% BI: 8.6%&#xA;[libx264 @ 000002a6612b8f40] 8x8 transform intra:11.2% inter:13.3%&#xA;[libx264 @ 000002a6612b8f40] coded y,uvDC,uvAC intra: 11.2% 12.4% 12.0% inter: 0.2% 0.2% 0.1%&#xA;[libx264 @ 000002a6612b8f40] i16 v,h,dc,p: 90%  6%  4%  0%&#xA;[libx264 @ 000002a6612b8f40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28%  3% 67%  0%  0%  0%  0%  0%  1%&#xA;[libx264 @ 000002a6612b8f40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 35% 15%  3%  4%  4%  5%  3%  4%&#xA;[libx264 @ 000002a6612b8f40] i8c dc,h,v,p: 86% 10%  3%  0%&#xA;[libx264 @ 000002a6612b8f40] Weighted P-Frames: Y:1.6% UV:1.6%&#xA;[libx264 @ 000002a6612b8f40] ref P L0: 69.2%  3.3% 18.7%  8.8%&#xA;[libx264 @ 000002a6612b8f40] ref B L0: 64.6% 31.0%  4.3%&#xA;[libx264 @ 000002a6612b8f40] ref B L1: 94.4%  5.6%&#xA;[libx264 @ 000002a6612b8f40] kb/s:80.06&#xA;[aac @ 000002a6612d0fc0] Qavg: 498.856&#xA;

    &#xA;

  • How to extract the first frame from a video ?

    10 août 2024, par Andrew

    I am trying to extract the first frame from a video to save it as a preview.

    &#xA;

    Here's an almost working solution using ffmpeg :

    &#xA;

    func extractFirstFrame(videoBytes []byte) ([]byte, error) {&#xA;    input := bytes.NewReader(videoBytes)&#xA;&#xA;    var output bytes.Buffer&#xA;&#xA;    err := ffmpeg.Input("pipe:0").&#xA;        Filter("select", ffmpeg.Args{"gte(n,1)"}).&#xA;        Output(&#xA;            "pipe:1",&#xA;            ffmpeg.KwArgs{&#xA;                "vframes": 1,&#xA;                "format":  "image2",&#xA;                "vcodec":  "mjpeg",&#xA;            }).&#xA;        WithInput(input).&#xA;        WithOutput(&amp;output).&#xA;        Run()&#xA;&#xA;    if err != nil {&#xA;        return nil, fmt.Errorf("error extracting frame: %v", err)&#xA;    }&#xA;&#xA;    return output.Bytes(), nil&#xA;}&#xA;

    &#xA;

    The problem with this is that it can only process horizontal videos. For some reason it will throw a 0xbebbb1b7 error for a vertical videos. I don't understand why is that, probably because this is my very first time with ffmpeg.

    &#xA;

    Also, I am concerned if this solution is optimal. My assumption is that the whole video will be loaded into the memory first, which is kinda bad and I would like to avoid that

    &#xA;

    I use https://github.com/u2takey/ffmpeg-go, but errors are the same even if I run it using exec :

    &#xA;

        cmd := exec.Command(&#xA;        "ffmpeg",&#xA;        "-i", "pipe:0",&#xA;        "-vf", "select=eq(n\\,0)",&#xA;        "-q:v", "3",&#xA;        "-f", "image2",&#xA;        "pipe:1",&#xA;    )&#xA;

    &#xA;

    Interestingly enough, I noticed that running command in the terminal will work as expected with any type of video ffmpeg -i .\video_2024-08-10_00-03-00.mp4 -vf "select=eq(n\,0)"  -q:v 3 output_image.jpg, so the problem may be on how I send those videos to my server. I useFiber and send videos as multipart/form-data and then read it like this :

    &#xA;

        form_data, err := c.FormFile("image")&#xA;    file, err := form_data.Open()&#xA;    bytes, err := io.ReadAll(file)&#xA;    ....&#xA;    preview, err := extractFirstFrame(bytes)&#xA;&#xA;

    &#xA;

    I also managed to find logs for the failed attempt :

    &#xA;

    &#xA;ffmpeg version 7.0.2-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers&#xA;  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;  libpostproc    58.  1.100 / 58.  1.100&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a562ff0e80] stream 0, offset 0x30: partial file&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a562ff0e80] Could not find codec parameters for stream 1 (Video: h264 (avc1 / 0x31637661), none, 720x1280, 3093 kb/s): unspecified pixel format&#xA;Consider increasing the value for the &#x27;analyzeduration&#x27; (0) and &#x27;probesize&#x27; (5000000) options&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;pipe:0&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    creation_time   : 2024-08-09T20:00:29.000000Z&#xA;  Duration: 00:00:06.80, start: 0.000000, bitrate: N/A&#xA;  Stream #0:0[0x1](eng): Audio: aac (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 74 kb/s (default)&#xA;      Metadata:&#xA;        creation_time   : 2024-08-09T20:00:23.000000Z&#xA;        handler_name    : SoundHandle&#xA;        vendor_id       : [0][0][0][0]&#xA;  Stream #0:1[0x2](eng): Video: h264 (avc1 / 0x31637661), none, 720x1280, 3093 kb/s, 30 fps, 30 tbr, 90k tbn (default)&#xA;      Metadata:&#xA;        creation_time   : 2024-08-09T20:00:23.000000Z&#xA;        handler_name    : VideoHandle&#xA;        vendor_id       : [0][0][0][0]&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native))&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a562ff0e80] stream 1, offset 0x5d: partial file&#xA;[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000002a562fda2c0] Error during demuxing: Invalid data found when processing input&#xA;Cannot determine format of input 0:1 after EOF&#xA;[vf#0:0 @ 000002a5636c0ec0] Task finished with error code: -1094995529 (Invalid data found when processing input)&#xA;[vf#0:0 @ 000002a5636c0ec0] Terminating thread with return code -1094995529 (Invalid data found when processing input)&#xA;[vost#0:0/mjpeg @ 000002a5636c0400] Could not open encoder before EOF&#xA;[vost#0:0/mjpeg @ 000002a5636c0400] Task finished with error code: -22 (Invalid argument)&#xA;[vost#0:0/mjpeg @ 000002a5636c0400] Terminating thread with return code -22 (Invalid argument)&#xA;[out#0/image2 @ 000002a562ff5640] Nothing was written into output file, because at least one of its streams received no packets.&#xA;frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A&#xA;Conversion failed!&#xA;

    &#xA;

    Logs for the same video, but ran via terminal :

    &#xA;

    ffmpeg version 7.0.2-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers&#xA;  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;  libpostproc    58.  1.100 / 58.  1.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;.\video_2024-08-10_00-03-00.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    creation_time   : 2024-08-09T20:00:29.000000Z&#xA;  Duration: 00:00:06.80, start: 0.000000, bitrate: 3175 kb/s&#xA;  Stream #0:0[0x1](eng): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 74 kb/s (default)&#xA;      Metadata:&#xA;        creation_time   : 2024-08-09T20:00:23.000000Z&#xA;        handler_name    : SoundHandle&#xA;        vendor_id       : [0][0][0][0]&#xA;  Stream #0:1[0x2](eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 720x1280, 3093 kb/s, 30 fps, 30 tbr, 90k tbn (default)&#xA;      Metadata:&#xA;        creation_time   : 2024-08-09T20:00:23.000000Z&#xA;        handler_name    : VideoHandle&#xA;        vendor_id       : [0][0][0][0]&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native))&#xA;Press [q] to stop, [?] for help&#xA;[swscaler @ 00000219eb4d0c00] deprecated pixel format used, make sure you did set range correctly&#xA;Output #0, image2, to &#x27;output_image.jpg&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf61.1.100&#xA;  Stream #0:0(eng): Video: mjpeg, yuvj420p(pc, unknown/bt709/bt709, progressive), 720x1280, q=2-31, 200 kb/s, 30 fps, 30 tbn (default)&#xA;      Metadata:&#xA;        creation_time   : 2024-08-09T20:00:23.000000Z&#xA;        handler_name    : VideoHandle&#xA;        vendor_id       : [0][0][0][0]&#xA;        encoder         : Lavc61.3.100 mjpeg&#xA;      Side data:&#xA;        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A&#xA;[image2 @ 00000219e7aa51c0] The specified filename &#x27;output_image.jpg&#x27; does not contain an image sequence pattern or a pattern is invalid.&#xA;[image2 @ 00000219e7aa51c0] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image.&#xA;[out#0/image2 @ 00000219e7b5e400] video:49KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown&#xA;frame=    1 fps=0.0 q=3.0 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=0.322x&#xA;

    &#xA;

    I also realized that the problem was not related to the video orientation, but to to the video from a specific source uploaded specifically on my server 🤡 Such a weird coincidence that I decided to test my video upload with those files, but anyway. And those are.... Downloaded instagram reels lol. But again, ffmpeg works just fine when ran in terminal

    &#xA;