
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (71)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Publier sur MédiaSpip
13 juin 2013Puis-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 -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.
Sur d’autres sites (10558)
-
Latency and DAF in RTP transmissions
24 février 2023, par jfernandzI'm trying to perform some tests for audio RTP transmissions to know their technical limitations. The idea is to prevent DAF effect in this kind of transmissions, I'm assuming a latency lower than 50ms will prevent it. But there is another handicap in my analysis, the RTP transmission must be over WiFi.


For this tests I'm trying to transmit raw audio (not sure if skipping the encoding stage will improve latency) through
ffmpeg
between two different laptops, so I'm runningffmpeg
in the first laptop (172.20.1.2
) as :

$ ffmpeg -f pulse -i 56 -c copy -f rtp rtp://172.20.1.5:10000


which produces the following output :


ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 12.2.0 (GCC)
 configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, pulse, from '56':
 Duration: N/A, start: 1677234050.938677, bitrate: 1536 kb/s
 Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Output #0, rtp, to 'rtp://172.20.1.5:10000':
 Metadata:
 encoder : Lavf59.27.100
 Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 172.20.1.5
t=0 0
a=tool:libavformat LIBAVFORMAT_VERSION
m=audio 10000 RTP/AVP 97
b=AS:1536

Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 322kB time=00:00:01.67 bitrate=1573.6kbits/s speed=1.06x



I'm assuming the shown SDP is a valid one :


v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 172.20.1.5
t=0 0
a=tool:libavformat LIBAVFORMAT_VERSION
m=audio 10000 RTP/AVP 97
b=AS:1536



So I saved it in a file called
ccopy.sdp
on the second laptop (172.20.1.5
). However, when I runffplay
in this other laptop as :

$ ffplay -protocol_whitelist file,rtp,udp -i ccopy.sdp


I can see there is problems with this SDP :


ffplay version n5.1.2 Copyright (c) 2003-2022 the FFmpeg developers
 built with gcc 12.2.0 (GCC)
 configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
[sdp @ 0x7f8eec000c80] Could not find codec parameters for stream 0 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, sdp, from 'ccopy.sdp':
 Metadata:
 title : No Name
 Duration: N/A, bitrate: N/A
 Stream #0:0: Audio: none, 0 channels
Failed to open file 'ccopy.sdp' or configure filtergraph
 nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0 



Not sure if I'm doing something wrong or this is because of I cannot actually use
pcm_s16le
for an RTP transmission. Moreover ... Is there some argument forffmpeg
that I can use to improve this RTP transmission and reduce latency under 50ms.

Thank you all :-)


PS : When I don't use
-c copy
argument forffmpeg
and therefore I have this SDP

v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 172.20.1.5
t=0 0
a=tool:libavformat LIBAVFORMAT_VERSION
m=audio 10000 RTP/AVP 97
b=AS:768
a=rtpmap:97 PCMU/48000/2



The RTP transmission works as I expect, but with a significant DAF.


-
FFMPEG parameter -sseof position is not “cutting” as expected
9 mai 2020, par VitaliiI have a regular recording of the desktop screen, indefinite in time. I want to keep in memory, only the last 30 seconds. My command looks like this, where I try to cut the video of the last 30 seconds, using
-sizeof -30
. But the entire length of the video is saved.

avfoundation -i '1'
it's my macbook screen


ffmpeg -rtbufsize 300M -sseof -30 -f avfoundation -i '1' -c:v libx264 -preset ultrafast -tune zerolatency -crf 25 ~/Desktop/output.mkv




System Macos 10.15

ffmpeg version 4.2.2



My full log



ffmpeg -rtbufsize 300M -sseof -30 -f avfoundation -i '1' -c:v libx264 -preset ultrafast -tune zerolatency -crf 25 ~/Desktop/output.mkv
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
 built with Apple clang version 11.0.3 (clang-1103.0.32.59)
 configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2_3 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags=-fno-stack-check --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --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 --disable-libjack --disable-indev=jack
 libavutil 56. 31.100 / 56. 31.100
 libavcodec 58. 54.100 / 58. 54.100
 libavformat 58. 29.100 / 58. 29.100
 libavdevice 58. 8.100 / 58. 8.100
 libavfilter 7. 57.100 / 7. 57.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 5.100 / 5. 5.100
 libswresample 3. 5.100 / 3. 5.100
 libpostproc 55. 5.100 / 55. 5.100
[AVFoundation input device @ 0x7fec8551cec0] Configuration of video device failed, falling back to default.
[avfoundation @ 0x7fec8600a200] Selected pixel format (yuv420p) is not supported by the input device.
[avfoundation @ 0x7fec8600a200] Supported pixel formats:
[avfoundation @ 0x7fec8600a200] uyvy422
[avfoundation @ 0x7fec8600a200] yuyv422
[avfoundation @ 0x7fec8600a200] nv12
[avfoundation @ 0x7fec8600a200] 0rgb
[avfoundation @ 0x7fec8600a200] bgr0
[avfoundation @ 0x7fec8600a200] Overriding selected pixel format to use uyvy422 instead.
[avfoundation @ 0x7fec8600a200] Stream #0: not enough frames to estimate rate; consider increasing probesize
Cannot use -sseof, duration of 1 not known
Input #0, avfoundation, from '1':
 Duration: N/A, start: 107388.118500, bitrate: N/A
 Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 2560x1600, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
 Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x7fec869bee00] MB rate (16000000000) > level limit (16711680)
[libx264 @ 0x7fec869bee00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fec869bee00] profile High 4:2:2, level 6.2, 4:2:2 8-bit
[libx264 @ 0x7fec869bee00] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - 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=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 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=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Output #0, matroska, to '/Users/vitalii-artec3d/Desktop/output.mkv':
 Metadata:
 encoder : Lavf58.29.100
 Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv422p, 2560x1600, q=-1--1, 1000k fps, 1k tbn, 1000k tbc
 Metadata:
 encoder : Lavc58.54.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 322 fps= 30 q=19.0 Lsize= 947kB time=00:00:10.80 bitrate= 718.0kbits/s speed=0.998x 
video:943kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.382723%
[libx264 @ 0x7fec869bee00] frame I:2 Avg QP:19.00 size:465715
[libx264 @ 0x7fec869bee00] frame P:320 Avg QP:19.30 size: 105
[libx264 @ 0x7fec869bee00] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0x7fec869bee00] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 0.1% 0.0% 0.0% 0.0% 0.0% skip:99.9%
[libx264 @ 0x7fec869bee00] coded y,uvDC,uvAC intra: 36.9% 24.9% 21.0% inter: 0.0% 0.1% 0.0%
[libx264 @ 0x7fec869bee00] i16 v,h,dc,p: 66% 28% 4% 2%
[libx264 @ 0x7fec869bee00] i8c dc,h,v,p: 70% 16% 12% 1%
[libx264 @ 0x7fec869bee00] kb/s:23977740.00



-
FFmpeg : convert .mpg video to .mp4 without losing quality
20 novembre 2024, par reteriusHow can I convert a .mpg video to .mp4 without losing quality ? My attempts below :


$INCPATH = dirname(__FILE__).'/';

$id = 99999;
$ext = "MPG";

$input_dir = $INCPATH."../img/videos/".$id.".".$ext ;
$output_dir2 = $INCPATH."../img/videos/".$id.".mp4" ;

$q = '/usr/bin/ffmpeg -i '.$input_dir.' -c:v libx264 -c:a libfaac -r 30 '.$output_dir2." 2>&1" ;

$out = shell_exec($q) ;
$input_dir = $output_dir2 ;

echo var_dump($out);



Output of running that script :


string(5735) "ffmpeg version N-76539-g480bad7-syslint Copyright (c) 2000-2015 the FFmpeg developers
 built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16)
 configuration: --prefix=/usr/local/cpffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-decoder=liba52 --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/local/cpffmpeg/include/ --extra-ldflags=-L/usr/local/cpffmpeg/lib --enable-version3 --extra-version=syslint
 libavutil 55. 5.100 / 55. 5.100
 libavcodec 57. 15.100 / 57. 15.100
 libavformat 57. 14.100 / 57. 14.100
 libavdevice 57. 0.100 / 57. 0.100
 libavfilter 6. 15.100 / 6. 15.100
 libswscale 4. 0.100 / 4. 0.100
 libswresample 2. 0.101 / 2. 0.101
 libpostproc 54. 0.100 / 54. 0.100
Input #0, mpeg, from '/home/imcajans/public_html/kzmk/../img/videos/99999.MPG':
 Duration: 00:00:08.16, start: 0.116600, bitrate: 2955 kb/s
 Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 9100 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
 Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s
[libx264 @ 0x161e820] using SAR=64/45
[libx264 @ 0x161e820] using cpu capabilities: none!
[libx264 @ 0x161e820] profile High, level 3.1
[libx264 @ 0x161e820] 264 - core 148 r2638 7599210 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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=18 lookahead_threads=3 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, mp4, to '/home/imcajans/public_html/kzmk/../img/videos/99999.mp4':
 Metadata:
 encoder : Lavf57.14.100
 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=-1--1, 30 fps, 15360 tbn, 30 tbc
 Metadata:
 encoder : Lavc57.15.100 libx264
 Stream #0:1: Audio: aac (libfaac) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s
 Metadata:
 encoder : Lavc57.15.100 libfaac
Stream mapping:
 Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (libx264))
 Stream #0:1 -> #0:1 (ac3 (native) -> aac (libfaac))
Press [q] to stop, [?] for help
frame= 48 fps=0.0 q=0.0 size= 0kB time=00:00:01.19 bitrate= 0.3kbits/s dup=8 drop=0 
frame= 66 fps= 58 q=29.0 size= 20kB time=00:00:01.83 bitrate= 87.2kbits/s dup=11 drop=0 
frame= 77 fps= 43 q=29.0 size= 51kB time=00:00:02.17 bitrate= 190.3kbits/s dup=13 drop=0 
frame= 89 fps= 38 q=29.0 size= 86kB time=00:00:02.60 bitrate= 272.2kbits/s dup=15 drop=0 
frame= 101 fps= 34 q=29.0 size= 124kB time=00:00:02.98 bitrate= 340.6kbits/s dup=17 drop=0 
frame= 114 fps= 32 q=29.0 size= 166kB time=00:00:03.39 bitrate= 400.3kbits/s dup=19 drop=0 
frame= 126 fps= 31 q=29.0 size= 201kB time=00:00:03.84 bitrate= 428.3kbits/s dup=21 drop=0 
frame= 137 fps= 30 q=29.0 size= 236kB time=00:00:04.20 bitrate= 459.6kbits/s dup=23 drop=0 
frame= 151 fps= 29 q=29.0 size= 275kB time=00:00:04.65 bitrate= 484.2kbits/s dup=25 drop=0 
frame= 165 fps= 29 q=29.0 size= 316kB time=00:00:05.12 bitrate= 505.4kbits/s dup=27 drop=0 
frame= 177 fps= 28 q=29.0 size= 350kB time=00:00:05.50 bitrate= 521.3kbits/s dup=29 drop=0 
frame= 188 fps= 27 q=29.0 size= 387kB time=00:00:05.93 bitrate= 534.6kbits/s dup=31 drop=0 
frame= 198 fps= 27 q=29.0 size= 419kB time=00:00:06.25 bitrate= 548.7kbits/s dup=33 drop=0 
frame= 212 fps= 27 q=29.0 size= 461kB time=00:00:06.72 bitrate= 562.4kbits/s dup=35 drop=0 
frame= 223 fps= 26 q=29.0 size= 495kB time=00:00:07.04 bitrate= 576.6kbits/s dup=37 drop=0 
frame= 240 fps= 26 q=29.0 size= 574kB time=00:00:07.59 bitrate= 618.9kbits/s dup=40 drop=0 
frame= 245 fps= 20 q=-1.0 Lsize= 834kB time=00:00:08.17 bitrate= 835.9kbits/s dup=41 drop=0 
video:696kB audio:128kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.134396%
[libx264 @ 0x161e820] frame I:2 Avg QP:22.05 size: 10777
[libx264 @ 0x161e820] frame P:187 Avg QP:22.67 size: 3323
[libx264 @ 0x161e820] frame B:56 Avg QP:23.98 size: 1242
[libx264 @ 0x161e820] consecutive B-frames: 54.7% 44.1% 1.2% 0.0%
[libx264 @ 0x161e820] mb I I16..4: 33.5% 63.9% 2.5%
[libx264 @ 0x161e820] mb P I16..4: 1.9% 1.8% 0.0% P16..4: 46.9% 4.7% 6.4% 0.0% 0.0% skip:38.3%
[libx264 @ 0x161e820] mb B I16..4: 0.1% 0.1% 0.0% B16..8: 34.4% 0.5% 0.0% direct: 3.1% skip:61.8% L0:41.1% L1:57.8% BI: 1.1%
[libx264 @ 0x161e820] 8x8 transform intra:51.1% inter:96.1%
[libx264 @ 0x161e820] coded y,uvDC,uvAC intra: 25.1% 86.2% 30.4% inter: 9.5% 38.5% 1.1%
[libx264 @ 0x161e820] i16 v,h,dc,p: 41% 5% 11% 43%
[libx264 @ 0x161e820] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 6% 48% 1% 1% 3% 1% 3% 1%
[libx264 @ 0x161e820] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 54% 10% 15% 3% 3% 8% 2% 5% 2%
[libx264 @ 0x161e820] i8c dc,h,v,p: 66% 12% 18% 3%
[libx264 @ 0x161e820] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x161e820] ref P L0: 66.7% 5.8% 17.5% 10.0%
[libx264 @ 0x161e820] ref B L0: 81.1% 18.9% 0.0%
[libx264 @ 0x161e820] ref B L1: 99.5% 0.5%
[libx264 @ 0x161e820] kb/s:697.87
"



My video with the .mpg extension at its best quality : https://imcajans.com/img/videos/99999.mpg


And the .mp4 video which was coverted from .mpg (bad quality) : https://imcajans.com/img/videos/99999.mp4