
Recherche avancée
Médias (1)
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (61)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains 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 ;
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
Sur d’autres sites (8863)
-
Adding some kind of subtitle to an mp4 with ffmpeg
23 juin 2017, par Steven Van IngelgemI have a subtitle (it certainly looks like it), but I don’t know how to add it into an MP4 I’m creating.
First a hexdump of the subtitle :00000000 00 00 00 18 66 74 79 70 69 73 6f 36 00 00 00 00 |....ftypiso6....|
00000010 69 73 6f 36 64 61 73 68 00 00 00 28 66 72 65 65 |iso6dash...(free|
00000020 55 53 50 20 62 79 20 43 6f 64 65 53 68 6f 70 11 |USP by CodeShop.|
00000030 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................|
00000040 00 00 02 1d 6d 6f 6f 76 00 00 00 6c 6d 76 68 64 |....moov...lmvhd|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................|
00000060 00 00 00 00 00 01 00 00 01 00 00 00 00 00 00 00 |................|
00000070 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 |................|
*
00000090 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........|
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000000b0 00 00 00 02 00 00 01 81 74 72 61 6b 00 00 00 5c |........trak...\|
000000c0 74 6b 68 64 00 00 00 07 00 00 00 00 00 00 00 00 |tkhd............|
000000d0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 |................|
*
00000100 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 |............@...|
00000110 00 00 00 00 00 00 00 00 00 00 01 1d 6d 64 69 61 |............mdia|
00000120 00 00 00 20 6d 64 68 64 00 00 00 00 00 00 00 00 |... mdhd........|
00000130 00 00 00 00 00 00 03 e8 00 00 00 00 39 84 00 00 |............9...|
00000140 00 00 00 35 68 64 6c 72 00 00 00 00 00 00 00 00 |...5hdlr........|
00000150 73 75 62 74 00 00 00 00 00 00 00 00 00 00 00 00 |subt............|
00000160 55 53 50 20 53 75 62 74 69 74 6c 65 20 48 61 6e |USP Subtitle Han|
00000170 64 6c 65 72 00 00 00 00 c0 6d 69 6e 66 00 00 00 |dler.....minf...|
00000180 0c 73 74 68 64 00 00 00 00 00 00 00 24 64 69 6e |.sthd.......$din|
00000190 66 00 00 00 1c 64 72 65 66 00 00 00 00 00 00 00 |f....dref.......|
000001a0 01 00 00 00 0c 75 72 6c 20 00 00 00 01 00 00 00 |.....url .......|
000001b0 88 73 74 62 6c 00 00 00 3c 73 74 73 64 00 00 00 |.stbl.../www.|
000001e0 77 33 2e 6f 72 67 2f 6e 73 2f 74 74 6d 6c 00 00 |w3.org/ns/ttml..|
000001f0 00 00 00 00 10 73 74 74 73 00 00 00 00 00 00 00 |.....stts.......|
00000200 00 00 00 00 10 73 74 73 63 00 00 00 00 00 00 00 |.....stsc.......|
00000210 00 00 00 00 14 73 74 73 7a 00 00 00 00 00 00 00 |.....stsz.......|
00000220 00 00 00 00 00 00 00 00 10 73 74 63 6f 00 00 00 |.........stco...|
00000230 00 00 00 00 00 00 00 00 28 6d 76 65 78 00 00 00 |........(mvex...|
00000240 20 74 72 65 78 00 00 00 00 00 00 00 01 00 00 00 | trex...........|
00000250 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000260 18 73 74 79 70 69 73 6f 36 00 00 00 00 69 73 6f |.stypiso6....iso|
00000270 36 6d 73 64 68 00 00 00 28 66 72 65 65 55 53 50 |6msdh...(freeUSP|
00000280 20 62 79 20 43 6f 64 65 53 68 6f 70 11 11 11 11 | by CodeShop....|
00000290 11 11 11 11 11 11 11 11 11 11 11 11 11 00 00 00 |................|
000002a0 2c 73 69 64 78 00 00 00 00 00 00 00 01 00 00 03 |,sidx...........|
000002b0 e8 00 00 00 00 00 00 00 00 00 00 00 01 00 00 0f |................|
000002c0 09 00 00 ea 60 90 00 00 00 00 00 00 68 6d 6f 6f |....`.......hmoo|
000002d0 66 00 00 00 10 6d 66 68 64 00 00 00 00 00 00 00 |f....mfhd.......|
000002e0 01 00 00 00 50 74 72 61 66 00 00 00 14 74 66 68 |....Ptraf....tfh|
000002f0 64 00 02 00 02 00 00 00 01 00 00 00 01 00 00 00 |d...............|
00000300 14 74 66 64 74 01 00 00 00 00 00 00 00 00 00 00 |.tfdt...........|
00000310 00 00 00 00 20 74 72 75 6e 00 00 07 01 00 00 00 |.... trun.......|
00000320 01 00 00 00 70 00 00 ea 60 00 00 0e 99 02 80 00 |....p...`.......|
00000330 40 00 00 0e a1 6d 64 61 74 3c 3f 78 6d 6c 20 76 |@....mdat<?xml v|
00000340 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 |ersion="1.0" enc|
00000350 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 3c |oding="utf-8"?><|
00000360 74 74 20 78 6d 6c 6e 73 3d 22 68 74 74 70 3a 2f |tt xmlns="http:/|
00000370 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 6e 73 2f 74 |/www.w3.org/ns/t|
00000380 74 6d 6c 22 20 78 6d 6c 6e 73 3a 73 6d 70 74 65 |tml" xmlns:smpte|
00000390 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6d 70 |="http://www.smp|
000003a0 74 65 2d 72 61 2e 6f 72 67 2f 73 63 68 65 6d 61 |te-ra.org/schema|
000003b0 73 2f 32 30 35 32 2d 31 2f 32 30 31 30 2f 73 6d |s/2052-1/2010/sm|I honestly have never seen anything like this before...
So the command I’m running now is this :
ffmpeg -y -i ’audionld#24000.mp4’ -i ’audionld#48000.mp4’ -i
’textnld.mp4’ -i ’video.mp4’ -map 0:a -map 1:a -map 2:d -map 3:v
-metadata:s:a:0 language=nld -metadata:s:a:1 language=nld -acodec copy -bsf:a aac_adtstoasc -vcodec copy -c:d copy -movflags faststart "test.mp4" 2>&1Which results in this output :
ffmpeg version 3.2.5-1~bpo8+1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/usr --extra-version='1~bpo8+1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --disable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'audionld#24000.mp4':
Metadata:
major_brand : iso6
minor_version : 0
compatible_brands: iso6dash
Duration: 00:03:06.07, start: 0.000000, bitrate: 64 kb/s
Stream #0:0(nld): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 62 kb/s (default)
Metadata:
handler_name : USP Sound Handler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'audionld#48000.mp4':
Metadata:
major_brand : iso6
minor_version : 0
compatible_brands: iso6dash
Duration: 00:03:06.07, start: 0.000000, bitrate: 95 kb/s
Stream #1:0(nld): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 93 kb/s (default)
Metadata:
handler_name : USP Sound Handler
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'textnld.mp4':
Metadata:
major_brand : iso6
minor_version : 0
compatible_brands: iso6dash
Duration: 00:03:05.76, bitrate: 0 kb/s
Stream #2:0(nld): Data: none (stpp / 0x70707473), 0 kb/s (default)
Metadata:
handler_name : USP Subtitle Handler
Input #3, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : iso6
minor_version : 0
compatible_brands: iso6dash
Duration: 00:03:06.08, start: 0.000000, bitrate: 152 kb/s
Stream #3:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 416x234 [SAR 1:1 DAR 16:9], 144 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
Metadata:
handler_name : USP Video Handler
encoder : Elemental H.264
[mp4 @ 0x7f15299c4520] Could not find tag for codec none in stream #2, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argumentStream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Stream #2:0 -> #0:2 (copy)
Stream #3:0 -> #0:3 (copy)
Last message repeated 1 timesThis gives the error :
Could not find tag for codec none in stream #2, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?) : Invalid argumentSo I tried playing with the map like this :
-map 2:s
==> Gives me :
Stream map ’2:s’ matches no streams.
To ignore this, add a trailing ’ ?’ to the map.-map 2:s ?
==> Gives me no error, but the subtitle stream isn’t added into the final file.Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Stream #3:0 -> #0:2 (copy)Maybe I first have to convert the subtitle into srt or such, but for that I don’t find on google what type of file this is.
Any help would be greatly appreciated !
Thanks
---EDIT---
Hereby the code that I am using to convert this in PHP :
private function convert_TTML_subtitle_file($orig) {
if ( $orig == '' || !file_exists($orig) ) {
return false;
}
$f = file_get_contents($orig);
$pos = stripos($f, '<tt xmlns="http://www.w3.org/ns/ttml" if="if" false="false" return="return" while="while">body->div->p as $p ) {
$txt .= "{$counter}\r\n";
$counter++;
$txt .= $p['begin'] . ' --> ' . $p['end'] . "\r\n";
$txt .= $p->span . "\r\n\r\n";
}
}
$cur += $curSize;
}
$fname = tempnam(getcwd(), 'sub');
file_put_contents($fname, $txt);
return $fname;
}
</tt> -
Using ffmpeg and ffserver to create a 2x1 live stream fails with unconnected output error
31 janvier 2021, par weevilknievelI want to combine 2 RTSP streams (CCTV cameras) into a horizontal 2x1 strip and convert to webm for use in a HTML5 webpage.



I am able to convert the streams into an mpeg or avi file easily, but as soon as I try to post it to ffserver ffm feed, I hit a wall.



Here is my working ffmpeg command which writes out to a file :



ffmpeg -rtsp_transport tcp -thread_queue_size 12 -i "rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp" -i "rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp" -filter_complex "[0:v][1:v] hstack=inputs=2 [v]" -map "[v]" -r 30 output.mpg




It seems the ffmpeg process is outputting two streams and one of them is MPEG ? In the above command I had to put a frame rate "-r 30" into the command otherwise I got an error which said that MPEG 1/2 did not support a framerate of 5/1 ??



As soon as I try and stream to ffserver, I get an error :



ffmpeg -rtsp_transport tcp -thread_queue_size 12 -i "rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp" -i "rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp" -filter_complex "[0:v][1:v] hstack=inputs=2 [v]" -map "[v]" -r 30 http://localhost:8090/feed5.ffm




The error I get is "Filter hstack has an unconnected output" :



ffmpeg version N-86111-ga441aa90e8-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers
 built with gcc 5.4.1 (Debian 5.4.1-8) 20170304
 configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
 libavutil 55. 63.100 / 55. 63.100
 libavcodec 57. 96.101 / 57. 96.101
 libavformat 57. 72.101 / 57. 72.101
 libavdevice 57. 7.100 / 57. 7.100
 libavfilter 6. 89.101 / 6. 89.101
 libswscale 4. 7.101 / 4. 7.101
 libswresample 2. 8.100 / 2. 8.100
 libpostproc 54. 6.100 / 54. 6.100
Input #0, rtsp, from 'rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp':
 Duration: N/A, start: 0.166667, bitrate: N/A
 Stream #0:0: Video: h264 (High), yuv420p(progressive), 352x288, 6 fps, 6 tbr, 90k tbn, 180k tbc
Input #1, rtsp, from 'rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp':
 Duration: N/A, start: 0.166667, bitrate: N/A
 Stream #1:0: Video: h264 (High), yuv420p(progressive), 352x288, 6 fps, 6 tbr, 90k tbn, 180k tbc
Filter hstack has an unconnected output




My ffserver conf is very basic :



HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 100000
CustomLog -

<feed>
File /mnt/ramdisk/feed5.ffm
Truncate
FileMaxSize 5M
ACL allow 127.0.0.1
</feed>

<stream>
 Format webm
 Feed feed5.ffm
 VideoCodec libvpx
 VideoSize 640x360
 NoAudio
 AVOptionVideo quality realtime
 StartSendOnKey
 VideoBitRate 140
</stream>

<stream>
Format status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</stream>
<redirect>
URL http://www.ffmpeg.org/
</redirect>




Edit :



Here is the debug output from the ffmpeg command above :



ffmpeg -v debug -rtsp_transport tcp -thread_queue_size 12 -i "rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp" -i "rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp" -filter_complex "[0:v][1:v] hstack=inputs=2 [v]" -map "[v]" -r 30 http://localhost:8090/feed5.ffm
ffmpeg version N-86111-ga441aa90e8-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers
 built with gcc 5.4.1 (Debian 5.4.1-8) 20170304
 configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
 libavutil 55. 63.100 / 55. 63.100
 libavcodec 57. 96.101 / 57. 96.101
 libavformat 57. 72.101 / 57. 72.101
 libavdevice 57. 7.100 / 57. 7.100
 libavfilter 6. 89.101 / 6. 89.101
 libswscale 4. 7.101 / 4. 7.101
 libswresample 2. 8.100 / 2. 8.100
 libpostproc 54. 6.100 / 54. 6.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport' with argument 'tcp'.
Reading option '-thread_queue_size' ... matched as option 'thread_queue_size' (set the maximum number of queued packets from the demuxer) with argument '12'.
Reading option '-i' ... matched as input url with argument 'rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp'.
Reading option '-i' ... matched as input url with argument 'rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create a complex filtergraph) with argument '[0:v][1:v] hstack=inputs=2 [v]'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '[v]'.
Reading option '-r' ... matched as option 'r' (set frame rate (Hz value, fraction or abbreviation)) with argument '30'.
Reading option 'http://localhost:8090/feed5.ffm' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option filter_complex (create a complex filtergraph) with argument [0:v][1:v] hstack=inputs=2 [v].
Successfully parsed a group of options.
Parsing a group of options: input url rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp.
Applying option thread_queue_size (set the maximum number of queued packets from the demuxer) with argument 12.
Successfully parsed a group of options.
Opening an input file: rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp.
[tcp @ 0x58fb5e0] No default whitelist set
[rtsp @ 0x58f9700] SDP:
v=0
o=- 38990265062388 38990265062388 IN IP4 192.168.1.132
a=range:npt=0-
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
a=rtpmap:96 H264/90000
a=framerate:0S
a=fmtp:96 profile-level-id=640014; packetization-mode=1; sprop-parameter-sets=Z2QAFK2EAQwgCGEAQwgCGEAQwgCEK1CwSyA=,aO48sA==
a=control:trackID=3

Failed to parse interval end specification ''
[rtsp @ 0x58f9700] video codec set to: h264
[rtsp @ 0x58f9700] RTP Profile IDC: 64 Profile IOP: 0 Level: 14
[rtsp @ 0x58f9700] RTP Packetization Mode: 1
[rtsp @ 0x58f9700] Extradata set to 0x58fb940 (size: 38)
[rtsp @ 0x58f9700] setting jitter buffer size to 0
[rtsp @ 0x58f9700] hello state=0
[h264 @ 0x58fca00] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x58fca00] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x58fca00] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x58fca00] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x58fca00] unknown SEI type 229
[h264 @ 0x58fca00] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x58fca00] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x58fca00] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x58fca00] nal_unit_type: 5, nal_ref_idc: 3
[h264 @ 0x58fca00] unknown SEI type 229
[h264 @ 0x58fca00] Reinit context to 352x288, pix_fmt: yuv420p
[h264 @ 0x58fca00] nal_unit_type: 1, nal_ref_idc: 3
 Last message repeated 5 times
[h264 @ 0x58fca00] unknown SEI type 229
 Last message repeated 1 times
[rtsp @ 0x58f9700] All info found
[rtsp @ 0x58f9700] Setting avg frame rate based on r frame rate
Input #0, rtsp, from 'rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=1&stream=1.sdp':
 Duration: N/A, start: 0.166667, bitrate: N/A
 Stream #0:0, 28, 1/90000: Video: h264 (High), 1 reference frame, yuv420p(progressive, left), 352x288, 0/1, 6 fps, 6 tbr, 90k tbn, 180k tbc
Successfully opened the file.
Parsing a group of options: input url rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp.
Successfully parsed a group of options.
Opening an input file: rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp.
[tcp @ 0x59f4280] No default whitelist set
[rtsp @ 0x59f7620] SDP:
v=0
o=- 38990265062388 38990265062388 IN IP4 192.168.1.132
a=range:npt=0-
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
a=rtpmap:96 H264/90000
a=framerate:0S
a=fmtp:96 profile-level-id=640014; packetization-mode=1; sprop-parameter-sets=Z2QAFK2EAQwgCGEAQwgCGEAQwgCEK1CwSyA=,aO48sA==
a=control:trackID=3

Failed to parse interval end specification ''
[rtsp @ 0x59f7620] video codec set to: h264
[rtsp @ 0x59f7620] RTP Profile IDC: 64 Profile IOP: 0 Level: 14
[rtsp @ 0x59f7620] RTP Packetization Mode: 1
[rtsp @ 0x59f7620] Extradata set to 0x59f3670 (size: 38)
[rtp @ 0x59f62a0] No default whitelist set
[udp @ 0x58fb6a0] No default whitelist set
[udp @ 0x58fb6a0] end receive buffer size reported is 131072
[udp @ 0x591b940] No default whitelist set
[udp @ 0x591b940] end receive buffer size reported is 131072
[rtsp @ 0x59f7620] setting jitter buffer size to 500
[rtsp @ 0x59f7620] hello state=0
[h264 @ 0x59e4b20] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x59e4b20] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x59e4b20] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x59e4b20] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x59e4b20] unknown SEI type 229
[h264 @ 0x59e4b20] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x59e4b20] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x59e4b20] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x59e4b20] nal_unit_type: 5, nal_ref_idc: 3
[h264 @ 0x59e4b20] unknown SEI type 229
[h264 @ 0x59e4b20] Reinit context to 352x288, pix_fmt: yuv420p
[h264 @ 0x59e4b20] nal_unit_type: 1, nal_ref_idc: 3
 Last message repeated 5 times
[h264 @ 0x59e4b20] unknown SEI type 229
 Last message repeated 1 times
[rtsp @ 0x59f7620] All info found
[rtsp @ 0x59f7620] Setting avg frame rate based on r frame rate
Input #1, rtsp, from 'rtsp://192.168.1.132:554/user=admin&password=mypassword&channel=2&stream=1.sdp':
 Duration: N/A, start: 0.166667, bitrate: N/A
 Stream #1:0, 28, 1/90000: Video: h264 (High), 1 reference frame, yuv420p(progressive, left), 352x288, 0/1, 6 fps, 6 tbr, 90k tbn, 180k tbc
Successfully opened the file.
detected 2 logical cores
[Parsed_hstack_0 @ 0x59f7cc0] Setting 'inputs' to value '2'
Parsing a group of options: output url http://localhost:8090/feed5.ffm.
Applying option map (set input stream mapping) with argument [v].
Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 30.
Successfully parsed a group of options.
Opening an output file: http://localhost:8090/feed5.ffm.
[http @ 0x59aa700] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x59aa700] request: GET /feed5.ffm HTTP/1.1
User-Agent: Lavf/57.72.101
Accept: */*
Range: bytes=0-
Connection: close
Host: localhost:8090
Icy-MetaData: 1


[ffm @ 0x5917d00] Format ffm probed with size=2048 and score=101
[NULL @ 0x5bce3e0] Setting entry with key 'video_size' to value '640x360'
[NULL @ 0x5bce3e0] Setting entry with key 'b' to value '140000'
[NULL @ 0x5bce3e0] Setting entry with key 'time_base' to value '1/5'
[NULL @ 0x5bce3e0] Setting entry with key 'bt' to value '35000'
[NULL @ 0x5bce3e0] Setting entry with key 'rc_eq' to value 'tex^qComp'
[NULL @ 0x5bce3e0] Setting entry with key 'maxrate' to value '280000'
[NULL @ 0x5bce3e0] Setting entry with key 'bufsize' to value '280000'
[AVIOContext @ 0x5915b80] Statistics: 4096 bytes read, 0 seeks
[http @ 0x5915f00] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x5915f00] request: POST /feed5.ffm HTTP/1.1
Transfer-Encoding: chunked
User-Agent: Lavf/57.72.101
Accept: */*
Connection: close
Host: localhost:8090
Icy-MetaData: 1


Successfully opened the file.
Filter hstack has an unconnected output
[AVIOContext @ 0x59ab080] Statistics: 0 seeks, 0 writeouts




I am stumped - any clues ?



Thanks in advance.


-
FFmpeg fontcolor_expr to dynamically change fontcolor over time
26 juin 2017, par MatthewI’m using Fluent-FFmpeg with Node.JS to create videos with text overlaid on them and I’m wanting to change the color of the text as the video progresses.
My filters follow this pattern :
drawtext=enable='between(t,18.93,20.28)':fontfile=fonts/cousine-bold.ttf:fontsize=144:fontcolor_expr=%{expr\\\: if(between(t\\, 0\\, 20)\\, 888888\\, 111111)}:x=82:y=288:text='PROGRAMMING'
And it prints out this stuff :
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libfreetype --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'uploads/0c719e39820366bc62c8fd66a6327828':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2017-06-23T00:19:46.000000Z
com.apple.quicktime.make: Apple
com.apple.quicktime.model: MacBookPro9,2
com.apple.quicktime.software: Mac OS X 10.12.5 (16F73)
com.apple.quicktime.creationdate: 2017-06-22T17:18:42-0700
Duration: 00:00:22.00, start: 0.000000, bitrate: 3408 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 3091 kb/s, 15 fps, 15 tbr, 30k tbn, 50 tbc (default)
Metadata:
creation_time : 2017-06-23T00:19:46.000000Z
handler_name : Core Media Data Handler
encoder : H.264
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 316 kb/s (default)
Metadata:
creation_time : 2017-06-23T00:19:46.000000Z
handler_name : Core Media Data Handler
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x7ff72e810a00] using SAR=1/1
[libx264 @ 0x7ff72e810a00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x7ff72e810a00] profile High, level 3.1
[libx264 @ 0x7ff72e810a00] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - 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=6 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=15 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 './outputFile.mp4':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
com.apple.quicktime.creationdate: 2017-06-22T17:18:42-0700
com.apple.quicktime.make: Apple
com.apple.quicktime.model: MacBookPro9,2
com.apple.quicktime.software: Mac OS X 10.12.5 (16F73)
encoder : Lavf57.71.100
Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 15 fps, 15360 tbn, 15 tbc (default)
Metadata:
creation_time : 2017-06-23T00:19:46.000000Z
handler_name : Core Media Data Handler
encoder : Lavc57.89.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1(und): Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2017-06-23T00:19:46.000000Z
handler_name : Core Media Data Handler
encoder : Lavc57.89.100 aac
frame= 52 fps=0.0 q=27.0 size= 37kB time=00:00:04.66 bitrate= 65.7kbits/s speed=8.74x
frame= 72 fps= 70 q=27.0 size= 187kB time=00:00:06.03 bitrate= 253.4kbits/s speed=5.83x
frame= 95 fps= 61 q=27.0 size= 358kB time=00:00:07.52 bitrate= 390.4kbits/s speed=4.82x
frame= 117 fps= 57 q=27.0 size= 569kB time=00:00:08.98 bitrate= 518.9kbits/s speed=4.35x
frame= 137 fps= 53 q=27.0 size= 732kB time=00:00:10.32 bitrate= 580.2kbits/s speed=4.03x
frame= 159 fps= 52 q=27.0 size= 942kB time=00:00:11.79 bitrate= 654.7kbits/s speed=3.84x
frame= 180 fps= 50 q=27.0 size= 1110kB time=00:00:13.18 bitrate= 689.5kbits/s speed=3.67x
frame= 204 fps= 50 q=27.0 size= 1331kB time=00:00:14.78 bitrate= 737.2kbits/s speed= 3.6x
frame= 223 fps= 48 q=27.0 size= 1486kB time=00:00:16.06 bitrate= 757.9kbits/s speed=3.49x
frame= 248 fps= 48 q=27.0 size= 1708kB time=00:00:17.71 bitrate= 789.7kbits/s speed=3.46x
frame= 266 fps= 47 q=27.0 size= 1859kB time=00:00:18.92 bitrate= 805.0kbits/s speed=3.35x
frame= 285 fps= 46 q=27.0 size= 2013kB time=00:00:20.19 bitrate= 816.4kbits/s speed=3.28x
[drawtext @ 0x7ff72d84bc00] Cannot find color '888888.000000'
Last message repeated 9 times
frame= 308 fps= 46 q=27.0 size= 2224kB time=00:00:21.75 bitrate= 837.5kbits/s speed=3.27x
frame= 330 fps= 46 q=27.0 size= 2401kB time=00:00:21.96 bitrate= 895.5kbits/s speed=3.06x
frame= 330 fps= 41 q=-1.0 Lsize= 2834kB time=00:00:22.00 bitrate=1055.0kbits/s speed=2.73x
video:2484kB audio:338kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.441003%
[libx264 @ 0x7ff72e810a00] frame I:22 Avg QP:13.64 size: 47604
[libx264 @ 0x7ff72e810a00] frame P:154 Avg QP:16.76 size: 8574
[libx264 @ 0x7ff72e810a00] frame B:154 Avg QP:19.42 size: 1138
[libx264 @ 0x7ff72e810a00] consecutive B-frames: 6.7% 93.3% 0.0% 0.0%
[libx264 @ 0x7ff72e810a00] mb I I16..4: 85.1% 13.3% 1.6%
[libx264 @ 0x7ff72e810a00] mb P I16..4: 5.5% 3.1% 0.0% P16..4: 41.5% 4.0% 5.5% 0.0% 0.0% skip:40.4%
[libx264 @ 0x7ff72e810a00] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 14.7% 0.1% 0.0% direct: 4.7% skip:80.4% L0:28.0% L1:71.4% BI: 0.7%
[libx264 @ 0x7ff72e810a00] 8x8 transform intra:21.7% inter:84.8%
[libx264 @ 0x7ff72e810a00] coded y,uvDC,uvAC intra: 60.5% 98.6% 92.9% inter: 6.0% 24.3% 3.1%
[libx264 @ 0x7ff72e810a00] i16 v,h,dc,p: 35% 19% 43% 3%
[libx264 @ 0x7ff72e810a00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 7% 80% 1% 1% 1% 1% 0% 0%
[libx264 @ 0x7ff72e810a00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 20% 45% 0% 0% 0% 0% 0% 0%
[libx264 @ 0x7ff72e810a00] i8c dc,h,v,p: 77% 9% 10% 4%
[libx264 @ 0x7ff72e810a00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7ff72e810a00] ref P L0: 75.3% 0.3% 17.1% 7.3%
[libx264 @ 0x7ff72e810a00] ref B L0: 80.0% 20.0%
[libx264 @ 0x7ff72e810a00] kb/s:924.66
[aac @ 0x7ff72e812200] Qavg: 2159.960In particular this annoying bit :
[drawtext @ 0x7ff72d84bc00] Cannot find color '888888.000000'
However, it would be really nice to do something like this :
fontcolor_expr=%{expr\\\\: if(between(t\\, 0\\, 20)\\, pink\\, white)}
Which prints out this error :
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
frame= 287 fps= 46 q=27.0 size= 2023kB time=00:00:20.31 bitrate= 815.9kbits/s speed=3.27x
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not valid
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Undefined constant or missing '(' in 'pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] [Eval @ 0x7fff5f7760c0] Missing ')' or too many args in 'if(between(t,0,20),pink,white)'
[Parsed_drawtext_0 @ 0x7ff3cf523300] Expression 'if(between(t, 0, 20), pink, white)' for the expr text expansion function is not validThere aren’t a lot of examples of fontcolor_expr, so I wanted to see if anyone had experience with this. Any tips on changing fonrcolors dynamically without creating multiple filters ?
Please note that
fontcolor_expr=white
andfontcolor_expr=888888
are valid and create videos with a fixed font color.