Recherche avancée

Médias (91)

Autres articles (32)

  • 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 ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

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

Sur d’autres sites (3622)

  • How to prevent screen tearing when updating stdin input to ffmpeg for youtube livestream

    8 septembre 2021, par Cameron Sima

    I am working on a livestream application that allows multiple web clients to stream video through webrtc to a 'controller' client which will add their audio track, then be able to switch between these video feeds and output the raw stream data to a server running ffmpeg, which will then send the feed to youtube live.

    


    The 'controller' client simply sets one peer video source as the 'active' stream on button press and all others as 'inactive'.

    


    The data is then sent to a node.js server like so :

    


          this.mediaSources.forEach((source, _) => {
    source.recorder.ondataavailable = (e: BlobEvent) => {
        if (source.active) {
          this.socket.emit('binarystream', e.data)
        }
      }


    


    The node server starts an ffmepg process like so :

    


    export class FfmpegService {
ffmpeg: ChildProcess
youtubeUrl = 'rtmp://a.rtmp.youtube.com/live2'

start(rtmpDestination: string) {
    this.ffmpeg = spawn('ffmpeg', this.getFfmpegOptions(rtmpDestination), 
        { shell: process.env.NODE_ENV !== 'production' }
    )
}

stop() {
    if (this.ffmpeg) {
        this.ffmpeg.stdin.end()
        this.ffmpeg.kill('SIGINT')
        this.ffmpeg = null
    }
}

feedStream(data: any) {
    this.ffmpeg.stdin.write(data)
}

private getFfmpegOptions(streamKey: string): string[] {
    const rtmpDestination = this.youtubeUrl + '/' + streamKey
    return [
        '-i','-',
        '-c:v', 'libx264', 
        '-preset', 'fast', '-tune', 'zerolatency',  // video codec config: low latency, adaptive bitrate
        '-c:a', 'aac', '-ar', '44100', '-b:a', '64k', // audio codec config: sampling frequency (11025, 22050, 44100), bitrate 64 kbits
        '-y', //force to overwrite
        '-use_wallclock_as_timestamps', '1', // used for audio sync
        '-async', '1', // used for audio sync
        //'-filter_complex', 'aresample=44100', // resample audio to 44100Hz, needed if input is not 44100
        //'-strict', 'experimental', 
        '-bufsize', '300k',
        '-pix_fmt', 'yuv420p',
        '-f', 'flv', rtmpDestination
    ];
}


    


    Everything works as expected in a youtube live session. The only problem is when switching between input streams, there is about 5 seconds of screen tearing before settling down. From all outward appearances, the switch happens immediately and seamlessly. I feel this can be attenuated/solved by tweaking the ffmpeg options but I'm pretty new to ffmpeg. I have tried increasing/decreasing -bufsize and -preset cli options, but nothing has worked so far.

    


  • How to convert 1080px mp4 video to 360p,480,720px,1080 like available in Youtube via ffmpeg

    14 février 2016, par Deep dhaliwal

    This is code.. I am in doubt about "-b" what about it. What about it ? Is it correct ? Please check and give improved version

    ffmpeg -i 'input.mp4' -ab 192k -ar 44000 -r 24 -aspect 4:3 -b 899k -vcodec mpeg4 -s 640*360 'output.mp4'
  • Streaming to YouTube using FFmpeg Problems

    12 septembre 2022, par jason

    I am trying to stream to a live event I have created inside of YouTube. I am trying to stream a already created video. The command I am using is noted below.

    



    The problem I have is that YouTube is showing the Streaming status as good (picture attached) and it seems to be receiving the data. But there is no sound and no picture in the live event. I'm not sure what the issue could be.

    



    ffmpeg -re -y -i input.mp4 -vcodec libx264 -b:v 600k -r 25 -s 640x360 -filter:v yadif -ab 64k -ac 1 -ar 44100 -f flv "rtmp://a.rtmp.youtube.com/live2/KEY"


    



    Image showing YouTube streaming status :

    



    Image showing youtube streaming status

    



    Console output :

    



    ffmpeg version N-60321-g4d7d9a5 Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb  2 2014 22:01:03 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 63.100 / 52. 63.100
  libavcodec     55. 49.101 / 55. 49.101
  libavformat    55. 29.101 / 55. 29.101
  libavdevice    55.  7.100 / 55.  7.100
  libavfilter     4.  1.102 /  4.  1.102
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2013-10-24 05:44:23
  Duration: 00:41:52.93, start: 0.000000, bitrate: 187 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yu
v420p, 480x360, 89 kb/s, 15 fps, 15 tbr, 30 tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96
 kb/s (default)
    Metadata:
      creation_time   : 2013-10-24 05:44:39
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
[libx264 @ 040fdc40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2
 FMA3 LZCNT BMI2
[libx264 @ 040fdc40] profile High, level 3.0
[libx264 @ 040fdc40] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Cop
yleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb
lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m
e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chro
ma_qp_offset=-2 threads=12 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=75 keyint_min=38 scenec
ut=0 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1200 ratetol=1.0 qc
omp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://a.rtmp.youtube.com/live2/keyname':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf55.29.101
    Stream #0:0(und): Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 85
4x480, q=-1--1, 1200 kb/s, 1k tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: mp3 (libmp3lame) ([2][0][0][0] / 0x0002), 44100 Hz,
 mono, fltp, 64 kb/s (default)
    Metadata:
      creation_time   : 2013-10-24 05:44:39
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> libmp3lame)
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.39 bitrate=   9.2kbits/s
...
frame=  463 fps=7.8 q=0.0 size=    1534kB time=00:00:31.66 bitrate= 396.8kbits/s
[flv @ 040fd6e0] Failed to update header with correct duration.
[flv @ 040fd6e0] Failed to update header with correct filesize.
frame=  463 fps=6.8 q=-1.0 Lsize=    2055kB time=00:00:31.79 bitrate= 529.6kbits
/s
video:1778kB audio:249kB subtitle:0 data:0 global headers:0kB muxing overhead 1.
405947%
[libx264 @ 040fdc40] frame I:7     Avg QP: 2.24  size: 44703
[libx264 @ 040fdc40] frame P:153   Avg QP: 0.65  size:  8418
[libx264 @ 040fdc40] frame B:303   Avg QP: 5.74  size:   724
[libx264 @ 040fdc40] consecutive B-frames: 11.9%  2.6%  0.0% 85.5%
[libx264 @ 040fdc40] mb I  I16..4: 66.0% 12.4% 21.6%
[libx264 @ 040fdc40] mb P  I16..4:  4.7%  0.8%  1.5%  P16..4:  6.6%  1.1%  1.1%
 0.0%  0.0%    skip:84.2%
[libx264 @ 040fdc40] mb B  I16..4:  0.2%  0.0%  0.1%  B16..8:  3.0%  0.2%  0.1%
 direct: 0.6%  skip:95.8%  L0:47.7% L1:49.2% BI: 3.0%
[libx264 @ 040fdc40] final ratefactor: -9.42
[libx264 @ 040fdc40] 8x8 transform intra:11.8% inter:35.4%
[libx264 @ 040fdc40] coded y,uvDC,uvAC intra: 33.7% 11.2% 11.1% inter: 2.6% 1.6%
 1.6%
[libx264 @ 040fdc40] i16 v,h,dc,p: 13% 86%  0%  0%
[libx264 @ 040fdc40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  9% 74% 11%  0%  1%  1%  1%
 1%  2%
[libx264 @ 040fdc40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 61%  6%  1%  3%  2%  4%
 2%  4%
[libx264 @ 040fdc40] i8c dc,h,v,p: 88% 10%  2%  0%
[libx264 @ 040fdc40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 040fdc40] ref P L0: 81.7%  9.4%  8.0%  0.9%
[libx264 @ 040fdc40] ref B L0: 78.9% 20.9%  0.2%
[libx264 @ 040fdc40] ref B L1: 99.1%  0.9%
[libx264 @ 040fdc40] kb/s:471.59
Received signal 2: terminating.


    



    Edit -

    



    I have now tested the following codes but I still dotn get any picture or sound.. but the health status in youtube still shows good

    



    I ran this command first

    



    ffmpeg -i input.mp4 -vcodec libx264 -preset medium -maxrate 3000k -bufsize 6000k -vf "scale=1280:-1,format=yuv420p" -g 50 -acodec libmp3lame -b:a 128k -ac 2 -ar 44100 file.flv


    



    and then I ran this

    



    ffmpeg -re -i file.flv -codec copy -f flv rtmp://a.rtmp.youtube.com/live2/<key>&#xA;</key>

    &#xA;&#xA;

    I still didnt get any picture

    &#xA;&#xA;

    I also tried the full command in 1

    &#xA;&#xA;

    ffmpeg -re -i input.mp4 -vcodec libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp://a.rtmp.youtube.com/live2/<key>  &#xA;</key>

    &#xA;&#xA;

    still no joy

    &#xA;