Recherche avancée

Médias (2)

Mot : - Tags -/kml

Autres articles (111)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

Sur d’autres sites (13490)

  • FFMPEG crash while cropping video

    18 octobre 2022, par Khawar Raza

    I am using FFMPEG to crop a video. I am using ffmpeg-kit as a ffmpeg wrapper in my android app where the user can select any output size irrespective of the original video aspect ratio. Below is the problematic command :

    


    -i "/storage/emulated/0/Download/83a2f6_1080p~2.mp4" -filter_complex "[0:v]crop=304:236:2:2[cropped]" -map "[cropped]" "/storage/emulated/0/DCIM/appname/vid_d8ee328d-ec7a-468b-9313-4561dceea33e.mp4"


    


    When the execution starts, the application crashes.

    


    Logs :

    


    I/ffmpeg-kit: Loading ffmpeg-kit.
I/ffmpeg-kit: Loaded ffmpeg-kit-min-gpl-arm64-v8a-4.5.1-20220101.
D/ffmpeg-kit: Async callback block started.
D/VideoEditor:  ffmpeg version v4.5-dev-3393-g30322ebe3c
D/VideoEditor:   Copyright (c) 2000-2021 the FFmpeg developers
D/VideoEditor:  
D/VideoEditor:    built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)
D/VideoEditor:    configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/storage/light/projects/ffmpeg-kit/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs='-L/storage/light/projects/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libx264 --enable-libxvid --enable-libx265 --enable-libvidstab --disable-sdl2 --disable-openssl --enable-zlib --enable-mediacodec --enable-gpl
D/VideoEditor:    libavutil      57. 13.100 / 57. 13.100
D/VideoEditor:    libavcodec     59. 15.102 / 59. 15.102
D/VideoEditor:    libavformat    59. 10.100 / 59. 10.100
D/VideoEditor:    libavdevice    59.  1.100 / 59.  1.100
D/VideoEditor:    libavfilter     8. 21.100 /  8. 21.100
D/VideoEditor:    libswscale      6.  1.102 /  6.  1.102
D/VideoEditor:    libswresample   4.  0.100 /  4.  0.100
D/VideoEditor:  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Download/83a2f6_1080p~2.mp4':
D/VideoEditor:    Metadata:
D/VideoEditor:      major_brand     : 
D/VideoEditor:  mp42
D/VideoEditor:  
D/VideoEditor:      minor_version   : 
D/VideoEditor:  0
D/VideoEditor:  
D/VideoEditor:      compatible_brands: 
D/VideoEditor:  isommp42
D/VideoEditor:  
D/VideoEditor:      com.android.version: 
D/VideoEditor:  12
D/VideoEditor:  
D/VideoEditor:    Duration: 
D/VideoEditor:  00:02:18.11
D/VideoEditor:  , start: 
D/VideoEditor:  0.000000
D/VideoEditor:  , bitrate: 
D/VideoEditor:  1929 kb/s
D/VideoEditor:  
D/VideoEditor:    Stream #0:0
D/VideoEditor:  [0x1]
D/VideoEditor:  (eng)
D/VideoEditor:  : Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x808, 1864 kb/s
D/VideoEditor:  , 
D/VideoEditor:  18 fps, 
D/VideoEditor:  18 tbr, 
D/VideoEditor:  90k tbn
D/VideoEditor:   (default)
D/VideoEditor:  
D/VideoEditor:      Metadata:
D/VideoEditor:        creation_time   : 
D/VideoEditor:  2022-10-06T11:47:07.000000Z
D/VideoEditor:  
D/VideoEditor:        handler_name    : 
D/VideoEditor:  VideoHandle
D/VideoEditor:  
D/VideoEditor:        vendor_id       : 
D/VideoEditor:  [0][0][0][0]
D/VideoEditor:  
D/VideoEditor:    Stream #0:1
D/VideoEditor:  [0x2]
D/VideoEditor:  (und)
D/VideoEditor:  : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 64 kb/s
D/VideoEditor:   (default)
D/VideoEditor:  
D/VideoEditor:      Metadata:
D/VideoEditor:        creation_time   : 
D/VideoEditor:  2022-10-06T11:47:07.000000Z
D/VideoEditor:  
D/VideoEditor:        handler_name    : 
D/VideoEditor:  SoundHandle
D/VideoEditor:  
D/VideoEditor:        vendor_id       : 
D/VideoEditor:  [0][0][0][0]
D/VideoEditor:  


D/VideoEditor:  [h264 @ 0x7654fe8500] The "sub_text_format" option is deprecated: Deprecated, does nothing
D/VideoEditor:  Stream mapping:
D/VideoEditor:    Stream #0:0 (h264) -> crop
D/VideoEditor:  
D/VideoEditor:    crop
D/VideoEditor:   -> Stream #0:0 (libx264)
D/VideoEditor:  Press [q] to stop, [?] for help


D/VideoEditor:  [libx264 @ 0x7654fb9af0] using cpu capabilities: ARMv8 NEON
D/VideoEditor:  [libx264 @ 0x7654fb9af0] profile High, level 1.2, 4:2:0, 8-bit
D/VideoEditor:  [libx264 @ 0x7654fb9af0] 264 - core 163 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - 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=7 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=18 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
D/VideoEditor:  Output #0, mp4, to '/storage/emulated/0/DCIM/appname/vid_d8ee328d-ec7a-468b-9313-4561dceea33e.mp4':
D/VideoEditor:    Metadata:
D/VideoEditor:      major_brand     : 
D/VideoEditor:  mp42
D/VideoEditor:  
D/VideoEditor:      minor_version   : 
D/VideoEditor:  0
D/VideoEditor:  
D/VideoEditor:      compatible_brands: 
D/VideoEditor:  isommp42
D/VideoEditor:  
D/VideoEditor:      com.android.version: 
D/VideoEditor:  12
D/VideoEditor:  
D/VideoEditor:      encoder         : 
D/VideoEditor:  Lavf59.10.100
D/VideoEditor:  
D/VideoEditor:    Stream #0:0
D/VideoEditor:  : Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 304x236, q=2-31
D/VideoEditor:  , 
D/VideoEditor:  18 fps, 
D/VideoEditor:  18432 tbn
D/VideoEditor:   (default)
D/VideoEditor:  
D/VideoEditor:      Metadata:
D/VideoEditor:        encoder         : 
D/VideoEditor:  Lavc59.15.102 libx264
D/VideoEditor:  
D/VideoEditor:      Side data:
D/VideoEditor:        
D/VideoEditor:  cpb: 
D/VideoEditor:  bitrate max/min/avg: 0/0/0 buffer size: 0 
D/VideoEditor:  vbv_delay: N/A
D/VideoEditor:  
D/VideoEditor:  frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    

A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x745d9ff000 in tid 16893 (pool-15-thread-), pid 16696 (videocompressor)


A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/x1sxx/x1s:12/SP1A.210812.016/G980FXXSFFVH7:user/release-keys'
Revision: '22'
ABI: 'arm64'
Processor: '5'
A/DEBUG: Timestamp: 2022-10-09 18:57:38.882598912+0500
A/DEBUG: Process uptime: 1086s
A/DEBUG: Cmdline: com.app.packagename
A/DEBUG: pid: 16939, tid: 20568, name: pool-15-thread-  >>> com.app.packagename <<<
A/DEBUG: uid: 11091
A/DEBUG: signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x74640ce000
A/DEBUG:     x0  0000007594f30960  x1  00000074640c9a60  x2  00000074640c9eb4  x3  00000074640cac34
A/DEBUG:     x4  00000074640cdff4  x5  00000074671bb2dc  x6  00000000fffffffb  x7  0000000000000013
A/DEBUG:     x8  000000000000000e  x9  00000074640cddc0  x10 0000000000000013  x11 0000007488459ffc
A/DEBUG:     x12 00000074640c9c70  x13 000000000000000e  x14 0000000000007fff  x15 0000000000000013
A/DEBUG:     x16 00000074640cac04  x17 00000074640c7a58  x18 000000746626e000  x19 0000000000000027
A/DEBUG:     x20 000000776541c3b0  x21 00000074671bc4f8  x22 00000074640ca9f0  x23 0000007765422300
A/DEBUG:     x24 0000000000000027  x25 00000074640cac04  x26 0000000000000028  x27 00000074640c9a30
A/DEBUG:     x28 0000007594f30940  x29 000000000000010a
A/DEBUG:     lr  000000748841a960  sp  00000074671bb290  pc  000000748845a010  pst 0000000080000000
A/DEBUG: backtrace:
A/DEBUG:       #00 pc 0000000000359010  /data/app/~~IBCbjRbZBpQ00ORNDFZdxg==/com.app.packagename-5sdOCmN82SjJJTibcsYMpQ==/base.apk!libavcodec.so


    


    I don't know what is wrong with the output width and height parameters. If I change [0:v]crop=304:236:2:2[cropped] to [0:v]crop=304:304:2:2[cropped] with change in height, the process completes successfully. The original video (1080x808) is not smaller than the output size. It does not seem to be a problem in the video as I have tried different videos. Any tips on what is missing from my command ?

    


  • FFMPEG & ytdl-core | Muxing highestaudio and highestvideo results in mp4 with incorrect time

    17 mars 2023, par Niek Peters

    I want to combine a file with only video and a file with only audio from the ytdl-core package into a mp4 and stream it in the response. I get the files using the highestvideo and highestaudio quality settings. I tried to modify a part of the ytdl-core-muxer module to change the output format to mp4, for which I also needed to add -movflags frag_keyframe+empty_moov, to allow the output mp4 to be seekable. This all seems to work and it produces a mp4 file without errors. When I open it with the Windows Photos app however, I noticed that even though video plays normally in perfect quality, the time is completely wrong.

    


    As you can see, the time says there are 53 million hours remaining, even though the video is 1:32 mins long

    


    I have tried adding a fixed framerate with -r 60 and regenerating the timestamps with -fflags +genpts, but to no avail. I have also tried encoding the video and audio formats to h264 (using libx264) and acc, but that didn't solve it either.

    


    

    

    // create the ffmpeg process for muxing
const ffmpegProcess = cp.spawn(
  ffmpeg,
  [
    // input audio by pipe
    "-thread_queue_size", "4096",
    "-i", "pipe:3",

    // input video by pipe
    "-thread_queue_size", "4096",
    "-r", "60",
    "-i", "pipe:4",

    // map audio and video correspondingly
    "-map", "0:a",
    "-map", "1:v",

    // change the codec
    "-c:v", "libx264", 
    "-c:a", "aac",
        
    "-preset", "ultrafast",

    // Allow output to be seekable, which is needed for mp4 output
    "-movflags", "frag_keyframe+empty_moov",

    // output mp4 and pipe
    "-r", "60",
    "-fflags", "+genpts",
    "-f", "mp4", "pipe:5",
  ],
  {
    // no popup window for Windows users
    windowsHide: true,
    stdio: [
      // silence stdin/out, forward stderr,
      "inherit", "inherit", "inherit",
      // and pipe audio, video, output
      "pipe", "pipe", "pipe",
    ],
  }
);
audioStream.pipe(ffmpegProcess.stdio[3]);
videoStream.pipe(ffmpegProcess.stdio[4]);
ffmpegProcess.stdio[5].pipe(result);

    


    


    



    Full console output :

    


    ffmpeg version 5.0.1-essentials_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers        
  built with gcc 11.2.0 (Rev7, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp 
--enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx 
--enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'pipe:3':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2022-08-21T19:56:49.000000Z
  Duration: 00:01:32.11, start: 0.000000, bitrate: N/A
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 1892 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
    Metadata:
      creation_time   : 2022-08-21T19:56:49.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 08/21/2022.
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)    Metadata:
      creation_time   : 2022-08-21T19:56:49.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 08/21/2022.
      vendor_id       : [0][0][0][0]
Input #1, matroska,webm, from 'pipe:4':
  Metadata:
    encoder         : google/video-file
  Duration: 00:01:32.12, start: 0.000000, bitrate: N/A
  Stream #1:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709), 3840x2160, SAR 1:1 DAR 16:9, 60 fps, 60 
tbr, 1k tbn (default)
Stream mapping:
  Stream #0:1 -> #0:0 (aac (native) -> aac (native))
  Stream #1:0 -> #0:1 (vp9 (native) -> h264 (libx264))
[libx264 @ 0000022aa059be80] using SAR=1/1
[libx264 @ 0000022aa059be80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2      
[libx264 @ 0000022aa059be80] profile Constrained Baseline, level 5.2, 4:2:0, 8-bit
[libx264 @ 0000022aa059be80] 264 - core 164 r3094 bfc87b7 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 
- http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Output #0, mp4, to 'pipe:5':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf59.16.100
  Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)     
    Metadata:
      creation_time   : 2022-08-21T19:56:49.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 08/21/2022.
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.18.100 aac
  Stream #0:1(eng): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 60 fps, 15360 tbn (default)
    Metadata:
      encoder         : Lavc59.18.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[matroska,webm @ 0000022aa056cd00] Thread message queue blocking; consider raising the thread_queue_size option (current value: 4096)
frame= 5527 fps= 77 q=-1.0 Lsize=  424599kB time=00:01:32.11 bitrate=37761.2kbits/s speed=1.29x    
video:423226kB audio:1329kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.010570%[aac @ 0000022aa05ca240] Qavg: 17828.035
[libx264 @ 0000022aa059be80] frame I:23    Avg QP:19.83  size:292044
[libx264 @ 0000022aa059be80] frame P:5504  Avg QP:22.92  size: 77519
[libx264 @ 0000022aa059be80] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0000022aa059be80] mb P  I16..4: 26.5%  0.0%  0.0%  P16..4: 14.1%  0.0%  0.0%  0.0%  0.0%    skip:59.3%
[libx264 @ 0000022aa059be80] coded y,uvDC,uvAC intra: 10.6% 27.6% 7.0% inter: 6.5% 12.8% 1.4%
[libx264 @ 0000022aa059be80] i16 v,h,dc,p: 57% 26%  8%  9%
[libx264 @ 0000022aa059be80] i8c dc,h,v,p: 43% 24% 25%  7%
[libx264 @ 0000022aa059be80] kb/s:37637.70


    


  • Transcode WEBM to RTMP

    7 avril 2024, par Justin White

    Summary

    


    My goal is to take a webcam stream from the browser and feed it into a program called Restreamer that takes in an RTMP stream.

    


    I've deduced that the browser Recording API produces Blobs that can be saved as WEBM.

    


    In order to stream the WEBM content to Restreamer I am attempting to use FFmpeg. I've read that forcing FLV format is required but otherwise all of the arguments are Greek to me. I've been unable to find a comparable topic where someone has tried to go from WEBM to RTMP. I have found examples of going the other direction, but reversing the FFmpeg command proved unfruitful.

    


    Saving to FLV works fine. Using the following command, I am able to transcode a WEBM file to FLV and play it on VLC :
    
ffmpeg -i ~/big-buck-bunny_trailer.webm -f flv out.flv

    


    However, if instead of outputting to a file I pass it to RTMP I get the following output :
    
ffmpeg -i ~/Downloads/big-buck-bunny_trailer.webm -f flv "rtmp://example.com/live"

    


    ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12 (GCC)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' --extra-cflags=' -I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --enable-chromaprint --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libbs2b --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librav1e --enable-librtmp --enable-librubberband --enable-libsmbclient --enable-version3 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan --enable-libglslang --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-avfilter --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-lto --enable-libmfx --enable-runtime-cpudetect
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, matroska,webm, from '/home/kyjus25/big-buck-bunny_trailer.webm':
  Metadata:
    encoder         : http://sourceforge.net/projects/yamka
    creation_time   : 2010-05-20T08:21:12.000000Z
  Duration: 00:00:32.48, start: 0.000000, bitrate: 533 kb/s
  Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn (default)
  Stream #0:1(eng): Audio: vorbis, 44100 Hz, mono, fltp (default)
HandShake: client signature does not match!
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 (native) -> flv1 (flv))
  Stream #0:1 -> #0:1 (vorbis (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, flv, to 'rtmp://example.com/live':
  Metadata:
    encoder         : Lavf59.16.100
  Stream #0:0(eng): Video: flv1 ([2][0][0][0] / 0x0002), yuv420p(tv, bt470bg/unknown/unknown, progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 1k tbn (default)
    Metadata:
      encoder         : Lavc59.18.100 flv
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
  Stream #0:1(eng): Audio: mp3 ([2][0][0][0] / 0x0002), 44100 Hz, mono, fltp (default)
    Metadata:
      encoder         : Lavc59.18.100 libmp3lame
WriteN, RTMP send error 32 (136 bytes)7kB time=00:00:00.39 bitrate= 136.7kbits/s speed=71.2x    
WriteN, RTMP send error 32 (35 bytes)
WriteN, RTMP send error 9 (42 bytes)
av_interleaved_write_frame(): Operation not permitted
    Last message repeated 1 times
[flv @ 0x55d0dd0af700] Failed to update header with correct duration.
[flv @ 0x55d0dd0af700] Failed to update header with correct filesize.
Error writing trailer of rtmp://example.com/live: Operation not permitted
frame=   53 fps=0.0 q=4.3 Lsize=     146kB time=00:00:02.45 bitrate= 486.8kbits/s speed=42.8x    
video:128kB audio:19kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Error closing file rtmp://example.com/live: Operation not permitted
Conversion failed!


    


    There are several interesting rabbit holes to follow here, but after following all of them I've come up with nothing.

    


    HandShake: client signature does not match! :
    
More of a warning than an error, I assumed because I was going from "WEBM -> FLV" instead of the more traditional "MP4 -> FLV".

    


    av_interleaved_write_frame(): Operation not permitted :
    
I found several issues on this. One of them calling it a storage issue, the other calling it a file permissions issue. I have plenty of disk space and have tried setting the input file to 777 permissions. However, the examples I've found on it being a file permissions issue all deal with outputting to a file rather than to an an RTMP IP.

    


    Failed to update header with correct duration :
    
Advice I found was to add -flvflags no_duration_filesize to the command, which does suppress both "Failed to update..." errors, but does not fix the over-arching issue.

    


    What I've Tried

    


    • Multi-format transcoding

    


    MP4 to RTMP does work correctly :
    
ffmpeg -i ~/Downloads/big-buck-bunny_trailer.mp4 -f flv "rtmp://example.com/live"
    
Theoretically, I could stream the WEBM to a file, transcode that to an MP4 file, and then transcode that to FLV/RTMP. Sounds awful.

    


    • Pay for a service (Wowza, Flashphoner, api.video, etc)

    


    Unfortunately precisely what I am trying to avoid.

    


    • WebRTC to RTMP ?

    


    WebRTC seems to be a peer-to-peer connection and doesn't play nicely with a server/client scenario.

    


    • WebRTC to other ingest formats

    


    Restreamer also supports incoming streams of HLS, DASH, RTP, RTSP, RTMP, and SRT. However, these all seem to be examples of network sources that would be exposed via an IP URL. I am not sure that FFmpeg can do that.

    


    • Utilizing ffmpeg-wasm instead of CLI

    


    Available here, I thought that maybe by using a browser implementation I may get different results. But no. Not even an error to the console.

    


    • Streaming from OBS

    


    For the record, yes, I have tried streaming from OBS instead of going through FFmpeg and the Restreamer platform itself does work for normal use. I use it often.

    


    Post Script

    


    I've not been able to find any relevant solutions online. I am shocked that streaming from a browser webcam has not been solved 1000 times prior. This is related to a question made 7 years ago but it was not resolved and Flash is no longer an option.

    


    Recommendations

    


    • Adding -c:v libx264 -flags:v +global_header -c:a aac -ac 2 :

    


    ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12 (GCC)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' --extra-cflags=' -I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --enable-chromaprint --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libbs2b --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librav1e --enable-librtmp --enable-librubberband --enable-libsmbclient --enable-version3 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan --enable-libglslang --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-avfilter --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-lto --enable-libmfx --enable-runtime-cpudetect
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, matroska,webm, from '/home/kyjus25/big-buck-bunny_trailer.webm':
  Metadata:
    encoder         : http://sourceforge.net/projects/yamka
    creation_time   : 2010-05-20T08:21:12.000000Z
  Duration: 00:00:32.48, start: 0.000000, bitrate: 533 kb/s
  Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn (default)
  Stream #0:1(eng): Audio: vorbis, 44100 Hz, mono, fltp (default)
HandShake: client signature does not match!
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (vorbis (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x561564271fc0] using SAR=1/1
[libx264 @ 0x561564271fc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x561564271fc0] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 0x561564271fc0] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - 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=11 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://example.com/live':
  Metadata:
    encoder         : Lavf59.16.100
  Stream #0:0(eng): Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, bt470bg/unknown/unknown, progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 1k tbn (default)
    Metadata:
      encoder         : Lavc59.18.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1(eng): Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc59.18.100 aac
Larger timestamp than 24-bit: 0xffffff77kB time=00:00:30.18 bitrate= 460.0kbits/s speed=19.7x    
[flv @ 0x56156425e440] Failed to update header with correct duration.
[flv @ 0x56156425e440] Failed to update header with correct filesize.
frame=  812 fps=475 q=-1.0 Lsize=    1901kB time=00:00:32.52 bitrate= 479.0kbits/s speed=  19x    
video:1354kB audio:508kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.123872%
[libx264 @ 0x561564271fc0] frame I:21    Avg QP:15.05  size:  8839
[libx264 @ 0x561564271fc0] frame P:293   Avg QP:20.78  size:  3087
[libx264 @ 0x561564271fc0] frame B:498   Avg QP:22.20  size:   593
[libx264 @ 0x561564271fc0] consecutive B-frames: 14.7%  7.6%  9.2% 68.5%
[libx264 @ 0x561564271fc0] mb I  I16..4: 42.6% 41.9% 15.5%
[libx264 @ 0x561564271fc0] mb P  I16..4:  4.0%  8.0%  0.9%  P16..4: 22.7%  8.0%  4.0%  0.0%  0.0%    skip:52.4%
[libx264 @ 0x561564271fc0] mb B  I16..4:  1.4%  1.5%  0.2%  B16..8: 12.0%  1.0%  0.2%  direct: 3.3%  skip:80.5%  L0:44.1% L1:47.1% BI: 8.8%
[libx264 @ 0x561564271fc0] 8x8 transform intra:53.6% inter:57.0%
[libx264 @ 0x561564271fc0] coded y,uvDC,uvAC intra: 35.1% 37.7% 11.2% inter: 7.8% 9.5% 2.4%
[libx264 @ 0x561564271fc0] i16 v,h,dc,p: 56% 21% 14%  9%
[libx264 @ 0x561564271fc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 26% 21%  3%  3%  4%  4%  3%  4%
[libx264 @ 0x561564271fc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 21% 18%  4%  7%  7%  6%  5%  4%
[libx264 @ 0x561564271fc0] i8c dc,h,v,p: 62% 21% 15%  2%
[libx264 @ 0x561564271fc0] Weighted P-Frames: Y:20.8% UV:19.5%
[libx264 @ 0x561564271fc0] ref P L0: 70.3% 17.7%  9.0%  2.9%  0.0%
[libx264 @ 0x561564271fc0] ref B L0: 89.3%  8.9%  1.9%
[libx264 @ 0x561564271fc0] ref B L1: 96.4%  3.6%
[libx264 @ 0x561564271fc0] kb/s:341.30
[aac @ 0x561564223140] Qavg: 952.636


    


    Seems to complete successfully, but does so rather quickly. Log outputs a new Larger timestamp than 24-bit: 0xffffff77kB