
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (111)
-
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...) -
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)
Sur d’autres sites (4287)
-
Decrypting fragmented mpeg-dash using ffmpeg
6 octobre 2022, par Sayem Prodhan AnantaI have an mpeg-dash which I want to decrypt. I have the CENC decryption key. But I am unable to get it working. The dash uses segment template. Here is the dash


<?xml version="1.0" ?>
<mpd mediapresentationduration="PT1H55M53.987S" minbuffertime="PT6.00S" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011">
 
 <period>
 
 <adaptationset maxheight="720" maxwidth="1280" mimetype="video/mp4" segmentalignment="true" startwithsap="1">
 <accessibility schemeiduri="urn:scte:dash:cc:cea-608:2015" value="eng"></accessibility>
 <viewpoint schemeiduri="urn:mpeg:dash:role:2011" value="vp2"></viewpoint>
 
 <contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
 pAIAAAEAAQCaAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABoAFcAMwBQAEsAeABPAEkAYwB1AGsAVwBWAHgASwBaAHgAMgA3AEMAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBBAGQARgAvAFEAcwBzAHEATQBhAEEAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcAByAC4AcwBlAHIAdgBpAGMAZQAuAGUAeABwAHIAZQBzAHMAcABsAGEAeQAuAGMAbwBtAC8AcABsAGEAeQByAGUAYQBkAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==
 </contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
 AAAAQ3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACMIARIQPLcV8k6syyGkWVxKZx27ChoKaW50ZXJ0cnVzdCIBKg==
 </contentprotection>
 <segmenttemplate duration="6000" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4s" startnumber="1" timescale="1000"></segmenttemplate>
 <representation bandwidth="634478" codecs="avc1.4D401F" framerate="2997/100" height="288" scantype="progressive" width="512"></representation>
 <representation bandwidth="789637" codecs="avc1.4D401F" framerate="2997/100" height="360" scantype="progressive" width="640"></representation>
 <representation bandwidth="1562569" codecs="avc1.4D401F" framerate="2997/100" height="432" scantype="progressive" width="768"></representation>
 <representation bandwidth="2124583" codecs="avc1.4D401F" framerate="2997/100" height="720" scantype="progressive" width="1280"></representation>
 </adaptationset>
 
 <adaptationset lang="en" mimetype="audio/mp4" segmentalignment="true" startwithsap="1">
 
 <contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
 pAIAAAEAAQCaAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABoAFcAMwBQAEsAeABPAEkAYwB1AGsAVwBWAHgASwBaAHgAMgA3AEMAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBBAGQARgAvAFEAcwBzAHEATQBhAEEAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcAByAC4AcwBlAHIAdgBpAGMAZQAuAGUAeABwAHIAZQBzAHMAcABsAGEAeQAuAGMAbwBtAC8AcABsAGEAeQByAGUAYQBkAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==
 </contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
 AAAAQ3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACMIARIQPLcV8k6syyGkWVxKZx27ChoKaW50ZXJ0cnVzdCIBKg==
 </contentprotection>
 <segmenttemplate duration="6000" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4s" startnumber="1" timescale="1000"></segmenttemplate>
 <representation audiosamplingrate="48000" bandwidth="136225" codecs="mp4a.40.2">
 <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
 </representation>
 </adaptationset>
 </period>
</mpd>



I have produced an mp4 file by combining all the segments like this


init.mp4+seg-1.m4s+seg-2.m4s+....+seg-1159.m4s



But I end up with following error


ffmpeg version N-99631-g9018257751-anan5a-2020-10-19 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 8 (Debian 8.3.0-6)
 configuration: --extra-version=anan5a-2020-10-19 --enable-gpl --enable-version3 --disable-shared --enable-static --enable-small --enable-avisynth --enable-chromaprint --enable-frei0r --enable-gmp --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-librtmp --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-openal --enable-opencl --enable-opengl --enable-libdrm --enable-nonfree --enable-libfdk-aac --enable-libbluray --enable-libzimg --enable-libsvtav1
 libavutil 56. 60.100 / 56. 60.100
 libavcodec 58.111.101 / 58.111.101
 libavformat 58. 62.100 / 58. 62.100
 libavdevice 58. 11.102 / 58. 11.102
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 libpostproc 55. 8.100 / 55. 8.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x557789b49300] Incorrect number of samples in encryption info
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x557789b49300] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 512x288, 616 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../videos/enc.0a7bd4e9ec72b6e0-5549.mkv':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41iso5iso6
 Duration: 01:55:47.95, bitrate: 625 kb/s
 Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none, 512x288, 616 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 11988 tbr, 11988 tbn, 23976 tbc (default)
 Metadata:
 handler_name : Bento4 Video Handler
 Side data:
 unknown side data type 24 (779 bytes)
Output #0, matroska, to '../videos/dec.0a7bd4e9ec72b6e0-5549.mkv':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41iso5iso6
 encoder : Lavf58.62.100
 Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none, 512x288 [SAR 1:1 DAR 16:9], q=2-31, 616 kb/s, 29.97 fps, 11988 tbr, 1k tbn, 11988 tbc (default)
 Metadata:
 handler_name : Bento4 Video Handler
 Side data:
 unknown side data type 24 (779 bytes)
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x557789b49300] Incorrect number of samples in encryption info
../videos/enc.0a7bd4e9ec72b6e0-5549.mkv: Invalid data found when processing input
frame= 0 fps=0.0 q=-1.0 Lsize= 1kB time=00:00:00.00 bitrate=N/A speed= 0x 
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown



How can I achieve the decryption without error ??


-
How to use web analytics to acquire new customers
2 septembre 2020, par Joselyn Khor — Analytics Tips, Marketing -
Best way to diagnose VideoCapture not opening the rtmp stream
8 janvier 2021, par Greg0ryI am pulling my hair off for a few days and I'm out of ideas.


I have two rtmp streams


- 

- first stream is transcoded directly by myself (I use ffmpeg to transcode) and then I attach to that stream with opencv - VideoCapture can open the stream with no problem
- second stream is transcoded by 3rd party system (this system captures video through WebRTC and then encodes to h264) - this stream cannot be opened by VideCapture no matter what I do






I can attach with pure ffmpeg to that dodgy stream and I can restream - but this is not ideal as introduces extra network traffic and latency.


I was playing with
OPENCV_FFMPEG_CAPTURE_OPTIONS
environmental variable (I was trying to remove audio stream, change the video codec, playing with rtmp options like thisOPENCV_FFMPEG_CAPTURE_OPTIONS="loglevel;debug" python my_script.py
) - no joy

So I figured I am trying to solve this problem from wrong end. I should somehow collect underlying ffmpeg logs that should be available when calling VideoCapture. So I tried to set
OPENCV_FFMPEG_CAPTURE_OPTIONS="v;debug"
but I can see no ffmpeg output when calling VideoCapture.

This is very simple python3 script I was using during tests :


import cv2 as cv
dodgy_cap = cv.VideoCapture()
dodgy_cap.open('rtmp://my_local_ip_address/rtmp/dodgy_stream_name')
print(dodgy_cap.isOpened()) # always returns False
healthy_cap = cv.VideoCapture()
healthy_cap.open('rtmp://my_local_ip_address/rtmp/healthy_stream_name')
print(healthy_cap.isOpened()) # always returns True



I collected information about both streams with ffprobe, but even though they look different I cannot see what would be the difference that prevents opencv from opening VideoCapture for dodgy stream..


This is a fragment from (very) verbose log for healthy stream :


RTMP_ClientPacket, received: notify 254 bytes 
(object begin) 
Property: 
Property: 
(object begin) 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
(object end) 
(object end) 
Metadata:
 duration 0.00
 width 2048.00
 height 1536.00
 videodatarate 0.00
 framerate 6.00
 videocodecid 7.00
 title Session streamed by "preview"
 comment h264Preview_01_main
 encoder Lavf58.20.100
 filesize 0.00

(... raw network packets ...)

Input #0, flv, from 'rtmp://my_local_ip_address/rtmp/healthy_stream_name':
 Metadata:
 title : Session streamed by "preview"
 comment : h264Preview_01_main
 encoder : Lavf58.20.100
 Duration: 00:00:00.00, start: 159.743000, bitrate: N/A
 Stream #0:0, 41, 1/1000: Video: h264 (High), 1 reference frame, yuv420p(progressive), 2048x1536, 0/1, 6 fps, 6 tbr, 1k tbn




And this is the fragment for dodgy stream :


RTMP_ClientPacket, received: notify 205 bytes 
(object begin) 
Property: 
(object begin) 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
Property: 
(object end) 
(object end) 
RTMP_ReadPacket: fd=3 

(... raw network packets ...)

Input #0, flv, from 'rtmp://my_local_ip_address/rtmp/dodgy_stream_name':
 Duration: N/A, start: 4511.449000, bitrate: N/A
 Stream #0:0, 41, 1/1000: Video: h264 (High), 1 reference frame, yuv420p(progressive, left), 640x480, 0/1, 15.17 fps, 15.08 tbr, 1k tbn, 30 tbc
 Stream #0:1, 124, 1/1000: Audio: aac (LC), 48000 Hz, mono, fltp




Both streams don't require any authentication (they are not exposed to the outside world)


Dodgy stream contains audio but I don't think it is source of problem as I was able to connect to other healthy rtmp streams that contained audio..


I have no more ideas how can I debug this problem, please help..



I found in VideoCap documentation that I can enable exception mode, however it did not help much (it says where it failed but it does not say why) :


>>> dodgy_stream = cv.VideoCapture()
>>> dodgy_stream.setExceptionMode(True)
>>> dodgy_stream.open("rtmp://my_local_ip_address/rtmp/dodgy_stream_name")
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
cv2.error: OpenCV(4.5.0) /tmp/pip-req-build-s_nildlw/opencv/modules/videoio/src/cap.cpp:177: error: (-2:Unspecified error) could not open 'rtmp://my_local_ip_address/rtmp/dodgy_stream_name' in function 'open'
</module></stdin>