
Recherche avancée
Médias (1)
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (55)
-
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (9749)
-
select a screen section ffmpeg c++ on macos
21 avril 2022, par C1ngh10I am trying to record the screen on macos, with ffmpeg. I would like to be able to select a section of the screen instead of the whole desktop. I tried to set several options such as
vf
, with values like"crop=150:150:0:0"
, orvideo_size
with value"150x150"
. The result was that the output video had the correct dimensions (150x150) but whole screen has been recorded instead of the specified section. Does anybody know another way to do that ?

int ScreenRecorder::openVideoDevice() {
 value = 0;
 videoOptions = nullptr;
 pAVFormatContext = nullptr;

 pAVFormatContext = avformat_alloc_context();


 string dimension = to_string(width) + "x" + to_string(height);
 av_dict_set(&videoOptions, "video_size", dimension.c_str(), 0); //option to set the dimension of the screen section to record
 value = av_dict_set(&videoOptions, "framerate", "25", 0);
 if (value < 0) {
 cerr << "Error in setting dictionary value (setting framerate)" << endl;
 exit(-1);
 }

 value = av_dict_set(&videoOptions, "preset", "ultrafast", 0);
 if (value < 0) {
 cerr << "Error in setting dictionary value (setting preset value)" << endl;
 exit(-1);
 }

 //The distance from the left edge of the screen or desktop
 value = av_dict_set(&videoOptions, "vf", ("crop=" + to_string(width) + ":" + to_string(height) + ":" + to_string(x_offset) + ":" +
 to_string(y_offset)).c_str(), 0);

 if (value < 0) {
 cerr << "Error in setting crop" << endl;
 exit(-1);
 }

 value = av_dict_set(&videoOptions, "pixel_format", "yuv420p", 0);
 if (value < 0) {
 cerr << "Error in setting pixel format" << endl;
 exit(-1);
 }
 
 pAVInputFormat = av_find_input_format("avfoundation");

 if (avformat_open_input(&pAVFormatContext, "1:none", pAVInputFormat, &videoOptions) != 0) {
 cerr << "Error in opening input device" << endl;
 exit(-1);
 }
 //get video stream infos from context
 value = avformat_find_stream_info(pAVFormatContext, nullptr);
 if (value < 0) {
 cerr << "Error in retrieving the stream info" << endl;
 exit(-1);
 }

 VideoStreamIndx = -1;
 for (int i = 0; i < pAVFormatContext->nb_streams; i++) {
 if (pAVFormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
 VideoStreamIndx = i;
 break;
 }
 }
 if (VideoStreamIndx == -1) {
 cerr << "Error: unable to find video stream index" << endl;
 exit(-2);
 }

 pAVCodecContext = pAVFormatContext->streams[VideoStreamIndx]->codec;
 pAVCodec = avcodec_find_decoder(pAVCodecContext->codec_id/*params->codec_id*/);
 if (pAVCodec == nullptr) {
 cerr << "Error: unable to find decoder video" << endl;
 exit(-1);
 }

 return 0;
}



-
FFmpeg HLS input stream shows "Packet corrupt" and "timestamp discontinuity" errors when pushing to RTMP server [closed]
22 mai, par Amul BhatiaI'm trying to restream an HLS URL (https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1') into my RTMP server with FFmpeg. The command I use is :


ffmpeg -i "https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1" -c:v libx264 -preset veryfast -b:v 1000k -c:a aac -b:a 128k -f flv rtmp://69.62.85.241/live/streamkey



getting error


ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers
 built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
 configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
 libavutil 58. 29.100 / 58. 29.100
 libavcodec 60. 31.102 / 60. 31.102
 libavformat 60. 16.100 / 60. 16.100
 libavdevice 60. 3.100 / 60. 3.100
 libavfilter 9. 12.100 / 9. 12.100
 libswscale 7. 5.100 / 7. 5.100
 libswresample 4. 12.100 / 4. 12.100
 libpostproc 57. 3.100 / 57. 3.100
[hls @ 0x60992c0c8880] Skip ('#EXT-X-VERSION:3')
[hls @ 0x60992c0c8880] Skip ('#EXT-X-DISCONTINUITY')
 Last message repeated 9 times
[hls @ 0x60992c0c8880] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
 Last message repeated 1 times
Input #0, hls, from 'https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1':
 Duration: 00:01:00.00, start: 1.466667, bitrate: 0 kb/s
 Program 0
 Metadata:
 variant_bitrate : 0
 Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, unknown/bt709/iec61966-2-1), 854x480 [SAR 1:1 DAR 427:240], 30 fps, 30 tbr, 90k tbn
 Metadata:
 variant_bitrate : 0
Stream mapping:
 Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x60992cd68b00] using SAR=1/1
[libx264 @ 0x60992cd68b00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 0x60992cd68b00] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x60992cd68b00] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 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=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=abr mbtree=1 bitrate=1000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://69.62.85.241/live/streamkey':
 Metadata:
 encoder : Lavf60.16.100
 Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, unknown/bt709/iec61966-2-1, progressive), 854x480 [SAR 1:1 DAR 427:240], q=2-31, 1000 kb/s, 30 fps, 1k tbn
 Metadata:
 variant_bitrate : 0
 encoder : Lavc60.31.102 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: N/A
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 6000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 12000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 18000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 24000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 30000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 36000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 42000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 48000000
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 54000000
[flv @ 0x60992c88a340] Failed to update header with correct duration.44.8kbits/s speed=22.6x
[flv @ 0x60992c88a340] Failed to update header with correct filesize.
[out#0/flv @ 0x60992cc36180] video:304kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 11.671993%
frame= 1800 fps=685 q=-1.0 Lsize= 339kB time=00:00:59.90 bitrate= 46.4kbits/s speed=22.8x
[libx264 @ 0x60992cd68b00] frame I:8 Avg QP: 2.07 size: 20330
[libx264 @ 0x60992cd68b00] frame P:454 Avg QP: 0.23 size: 218
[libx264 @ 0x60992cd68b00] frame B:1338 Avg QP: 0.21 size: 37
[libx264 @ 0x60992cd68b00] consecutive B-frames: 0.9% 0.0% 0.0% 99.1%
[libx264 @ 0x60992cd68b00] mb I I16..4: 86.7% 0.3% 13.0%
[libx264 @ 0x60992cd68b00] mb P I16..4: 0.1% 0.0% 0.0% P16..4: 1.4% 0.0% 0.0% 0.0% 0.0% skip:98.6%
[libx264 @ 0x60992cd68b00] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.1% 0.0% 0.0% direct: 0.1% skip:99.8% L0:59.9% L1:40.1% BI: 0.0%
[libx264 @ 0x60992cd68b00] final ratefactor: -25.04
[libx264 @ 0x60992cd68b00] 8x8 transform intra:0.3% inter:1.8%
[libx264 @ 0x60992cd68b00] coded y,uvDC,uvAC intra: 13.5% 0.0% 0.0% inter: 0.2% 0.0% 0.0%
[libx264 @ 0x60992cd68b00] i16 v,h,dc,p: 90% 6% 4% 0%
[libx264 @ 0x60992cd68b00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 59% 12% 28% 0% 1% 1% 0% 0% 0%
[libx264 @ 0x60992cd68b00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 41% 18% 19% 4% 4% 4% 3% 4% 3%
[libx264 @ 0x60992cd68b00] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0x60992cd68b00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x60992cd68b00] kb/s:41.38



However, I get repeated errors like :


Packet corrupt (stream = 0, dts = xxxx)


timestamp discontinuity (stream id=0)


corrupt input packet in stream 0


The stream partially works but seems unstable. How can I fix this error ?


my nginx.conf


rtmp {
 server {
 listen 1935;
 chunk_size 4096;

 application live {
 live on;
 record off;

 hls on;
 hls_path /var/www/hls;
 hls_fragment 5; # each TS segment = 5s
 hls_playlist_length 120; # keep last 2 minutes of stream
 hls_cleanup off; # do not delete old segments
 }
 }
}

http {
 include mime.types;
 default_type application/octet-stream;

 sendfile on;
 keepalive_timeout 65;

 server {
 listen 81;

 location /hls {
 root /var/www;
 types {
 application/vnd.apple.mpegurl m3u8;
 video/mp2t ts;
 }

 add_header Cache-Control no-cache;
 add_header Access-Control-Allow-Origin *;
 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
 add_header Access-Control-Allow-Headers 'Range';
 add_header Access-Control-Expose-Headers 'Content-Length, Content-Range';
 }
 }
}



The same url is working fine when used in browser, but extracting the stream and putting it in RTMP server and accessing my RTMP server at rtmp ://69.62.85.241/live/streamkey not working


-
How to stream live h.264 (IP camera) video to browser ? (bonus : low bandwidth and latency)
4 octobre 2018, par Ryan GriggsI need to stream live h.264-encoded video from an IP camera to the browser, while supporting all common browsers and mobile devices (i.e. Android, Firefox, Chrome, IE, Safari (Mac OS and iOS)), and while keeping bandwidth requirements and latency to a minimum.
MPEG-DASH requires browser support for Media Source Extensions, which are NOT supported by iOS. So that’s out.
HLS is only supported by Safari and Edge.
Also DASH seems to impose a latency of several seconds, which is not preferable.
I would like to be able to chunk the incoming h.264 data (i.e. fragmented MP4), pass the chunked data to the browser via Websockets, then dump the chunks into some sort of player as they arrive.
Broadway and its forks are a javascript h.264 decoder, and there is a Broadway-stream project that supports streams instead of files, but the docs are poor and I can only find examples of streaming when the source is not live.
The most pressing question is : how do I hand the "chunked data" to a player or Video HTML element as it arrives at the browser ?
I think the ideal setup would be to
- Use ffmpeg to transcode the original video to a chunked format (fMP4)
- Pipe the chunked output to a Node JS app which emits each chunk out through a Websocket to all connected viewers
- Viewers’ browsers dump each incoming chunk into some sort of decoder which renders the video.
I’m clear up to the point of handing the received chunks to a video decoder. How can that be done without depending on Media Source Extensions, and allowing viewers to join the stream at random times ?