
Recherche avancée
Médias (1)
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (72)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
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
Sur d’autres sites (9171)
-
How to make Matomo GDPR compliant in 12 steps
3 avril 2018, par InnoCraftImportant note : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to briefly show you where Matomo is entering into play within the GDPR process. This work comes from our interpretation of the UK privacy commission : ICO. It cannot be considered as professional legal advice. So as GDPR, this information is subject to change. We strongly advise you to have a look at the different privacy authorities in order to have up to date information.
The General Data Protection Regulation (EU) 2016/679, also referred to RGPD in French, Datenschutz-Grundverordnung, DS-GVO in German, is a regulation on data protection and privacy for all individuals within the European Union. It concerns organizations worldwide dealing with EU citizens and will come into force on the 25th May 2018.
The GDPR applies to ‘personal data’ meaning any information relating to an identifiable person who can be directly or indirectly identified in particular by reference to an identifier. It includes cookies, IP addresses, User ID, location, and any other data you may have collected.
We will list below the 12 steps recommended by the UK privacy commissioner in order to be GDPR compliant and what you need to do for each step.
The 12 steps of GDPR compliance according to ICO and how it fit with Matomo
As mentioned in one of our previous blog post about GDPR, if you are not collecting any personal data with Matomo, then you are not concerned about what is written below.
If you are processing personal data in any way, here are the 12 steps to follow along with some recommendations on how to be GDPR compliant with Matomo :
1 – Awareness
Make sure that people within your organization know that you are using Matomo in order to analyze traffic on the website/app. If needed, send them the link to the “What is Matomo ?” page.
2 – Information you hold
List all the personal data you are processing with Matomo within your record of processing activities. We are personally using the template provided by ICO which is composed of a set of 30 questions you need to answer regarding your use of Matomo. We have published an article which walks you through the list of questions specifically in the use case of Matomo Analytics. Please be aware that personal data may be also tracked in non-obvious ways for example as part of page URLs or page titles.
3 – Communicating privacy information
a – Add a privacy notice
Add a privacy notice wherever you are using Matomo in order to collect personal data. Please refer to the ICO documentation in order to learn how to write a privacy notice. You can learn more in our article about creating your privacy notice for Matomo Analytics. Make sure that a privacy policy link is always available on your website or app.
b – Add Matomo to your privacy policy page
Add Matomo to the list of technologies you are using on your privacy policy page and add all the necessary information to it as requested in the following checklist. To learn more check out our article about Privacy policy.
4 – Individuals’ rights
Make sure that your Matomo installation respects all the individuals’ rights. To make it short, you will need to know the features in Matomo that you need to use to respect user rights (right of access, right of rectification, right of erasure…). These features are available starting in Matomo 3.5.0 released on May 8th : GDPR tools for Matomo (User guide).
5 – Subject access requests
Make sure that you are able to answer an access request from a data subject for Matomo. For example, when a person would like to access her or his personal data that you have collected about her or him, then you will need to be you able to provide her or him with this information. We recommend you design a process for this like “Who is dealing with it ?” and check that it is working. If you can answer to the nightmare letter, then you are ready. The needed features for this in Matomo will be available soon.
6 – Lawful basis for processing personal data
There are different lawful basis you can use under GDPR. It can be either “Legitimate interest” or “Explicit consent”. Do not forget to mention it within your privacy policy page. Read more in our article about lawful basis.
7 – Consent
Users should be able to remove their consent at any time. By chance, Matomo is providing a feature in order to do just that : add the opt-out feature to your privacy policy page.
We are also offering a tool that allows you optionally to require consent before any data is tracked. This will be useful if a person should be only tracked after she or he has given explicit consent to be tracked.8 – Children
If your website or app is targeted for children and you are using Matomo, extra measures will need to be taken. For example you will need to write your privacy policy even more clear and moreover getting parents consent if the child is below 13. As it is a very specific case, we strongly recommend you to follow this link for further information.
9 – Data breaches
As you may be collecting personal data with Matomo, you should also check your “data breach procedure” to define if a leak may have consequences on the privacy of the data subject. Please consult ICO’s website for further information.
10 – Data Protection by Design and Data Protection Impact Assessments
Ask yourself if you really need to process personal data within Matomo. If the data you are processing within Matomo is sensitive, we strongly recommend you to make a Data Protection Impact Assessment. A software is available from the The open source PIA software helps to carry out data protection impact assessment, by French Privacy Commissioner : CNIL.
11 – Data Protection Officers
If you are reading this article and you are the Data Protection Officer (DPO), you will not be concerned by this step. If that’s not the case, your duty is to provide to the DPO (if your business has a DPO) our blog post in order for her or him to ask you questions regarding your use of Matomo. Note that your DPO can also be interested in the different data that Matomo can process : “What data does Matomo track ?” (FAQ).
12 – International
Matomo data is hosted wherever you want. So according to the location of the data, you will need to show specific safeguard except for EU. For example regarding the USA, you will have to check if your web hosting platform is registered to the Privacy Shield : privacyshield.gov/list
Note : our Matomo cloud infrastructure is based in France.That’s the end of this blog post. As GDPR is a huge topic, we will release many more blog posts in the upcoming weeks. If there are any Matomo GDPR topic related posts you would like us to write, please feel free to contact us.
The post How to make Matomo GDPR compliant in 12 steps appeared first on Analytics Platform - Matomo.
-
Accessing RTSP Server hosted on AWS over internet
27 juillet 2018, par Kishor VI am trying to access my EC2 Ubuntu instance from AWS using gaminganywhere (gaminganywhere.org). The security group policy is to allow all connections, but couldn’t connect to the server. Here is the log from the client and server.
Client
# [7860] 1522686205.894230 # include: config/common/controller.conf
# [7860] 1522686205.894569 # include: config/common/video-x264.conf
# [7860] 1522686205.894755 # include: config/common/audio-lame.conf
# [7860] 1522686205.895002 # RTSP[config]: using 'udp' for RTP flows.
# [7860] 1522686205.895012 # RTSP[config]: controller port = 8555
# [7860] 1522686205.895016 # RTSP[config]: controller via 'udp' protocol.
# [7860] 1522686205.895058 # RTSP[config]: video-encoder = libx264 (libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
# [7860] 1522686205.895071 # RTSP[config]: audio-encoder = libmp3lame (libmp3lame MP3 (MPEG audio layer 3))
# [7860] 1522686205.895101 # RTSP[config]: video specific option: threads = auto
Remote server @ 18.188.161.135[18.188.161.135]:8554
# [7860] 1522686205.971505 SDL: prefer opengl hardware renderer.
# [7860] 1522686205.971532 controller queue: initialized size=32708 (481 units)
# [7860] 1522686205.971693 controller socket: socket address [18.188.161.135:8555]
# [7860] 1522686205.971727 controller client-thread started: tid=7863.
watchdog: launched, waiting for audio/video frames ...
# [7860] 1522686205.971813 rtspclient: max tolerable video delay disabled.
*** SAVEFILE: YUV image saved to 'NULL'; timestamp saved to 'NULL'.
RTP reordering threshold = 300000
# [7860] 1522686205.971959 qos-measurement: initialized.
Opening connection to 18.188.161.135, port 8554...
...remote connection opened
Sending request: DESCRIBE rtsp://18.188.161.135:8554/desktop RTSP/1.0
CSeq: 2
User-Agent: RTSP Client (LIVE555 Streaming Media v2014.05.27)
Accept: application/sdp
Received 619 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 2
Date: Mon, Apr 02 2018 16:23:26 GMT
Content-Base: rtsp://10.0.0.73:8554/desktop/
Content-Type: application/sdp
Content-Length: 456
v=0
o=- 1522685876960515 1 IN IP4 10.0.0.73
s=GamingAnywhere Server
i=desktop
t=0 0
a=tool:LIVE555 Streaming Media v2014.05.27
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:GamingAnywhere Server
a=x-qt-text-inf:desktop
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:3000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=4D4020;sprop-parameter-sets=Z01AILaAUAIGhAAAAwAEAAADAMI8YMqA,aO88gA==
a=control:track1
[URL:"rtsp://10.0.0.73:8554/desktop/"]: Got a SDP description:
v=0
o=- 1522685876960515 1 IN IP4 10.0.0.73
s=GamingAnywhere Server
i=desktop
t=0 0
a=tool:LIVE555 Streaming Media v2014.05.27
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:GamingAnywhere Server
a=x-qt-text-inf:desktop
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:3000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=4D4020;sprop-parameter-sets=Z01AILaAUAIGhAAAAwAEAAADAMI8YMqA,aO88gA==
a=control:track1
# [7860] 1522686206.581278 qos-measurement: source #0 added, prefix=-281002320
video decoder: use decoder h264
video decoder(0): sprop configured with 'Z01AILaAUAIGhAAAAwAEAAADAMI8YMqA,aO88gA==', decoded-size=36
SPROP = [ 00 00 00 01 67 4d 40 20 b6 80 50 02 06 84 00 00 03 00 04 00 00 03 00 c2 3c 60 ca 80 00 00 00 01 68 ef 3c 80 ]
video decoder(0): codec h264 (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
video decoder(0) initialized (client port 44578)
[URL:"rtsp://10.0.0.73:8554/desktop/"]: Initiated the "video/H264" subsession (client ports 44578-44579)
Sending request: SETUP rtsp://10.0.0.73:8554/desktop/track1 RTSP/1.0
CSeq: 3
User-Agent: RTSP Client (LIVE555 Streaming Media v2014.05.27)
Transport: RTP/AVP;unicast;client_port=44578-44579
Received 212 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 3
Date: Mon, Apr 02 2018 16:23:26 GMT
Transport: RTP/AVP;unicast;destination=117.206.20.30;source=10.0.0.73;client_port=44578-44579;server_port=6970-6971
Session: CBA2E074;timeout=65
[URL:"rtsp://10.0.0.73:8554/desktop/"]: Set up the "video/H264" subsession (client ports 44578-44579)
[URL:"rtsp://10.0.0.73:8554/desktop/"]: Created a data sink for the "video/H264" subsession
Receiver buffer increased to 2097152
NAT hole punching: fd=11, local-port=44578/44578 server-port=6970
Sending request: PLAY rtsp://10.0.0.73:8554/desktop/ RTSP/1.0
CSeq: 4
User-Agent: RTSP Client (LIVE555 Streaming Media v2014.05.27)
Session: CBA2E074
Range: npt=0.000-
watchdog: initialized, but no frames received ...
Received 184 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
CSeq: 4
Date: Mon, Apr 02 2018 16:23:27 GMT
Range: npt=0.000-
Session: CBA2E074
RTP-Info: url=rtsp://10.0.0.73:8554/desktop/track1;seq=32456;rtptime=2677630715
[URL:"rtsp://10.0.0.73:8554/desktop/"]: Started playing session...
watchdog: initialized, but no frames received ...
watchdog: initialized, but no frames received ...
watchdog: initialized, but no frames received ...
watchdog: initialized, but no frames received ...
watchdog: initialized, but no frames received ...
watchdog: initialized, but no frames received ...Server
# [4432] 1522685876.873593 # include: config/common/server-common.conf
# [4432] 1522685876.873731 # include: config/common/controller.conf
# [4432] 1522685876.873810 # include: config/common/video-x264.conf
# [4432] 1522685876.873882 # include: config/common/video-x264-param.conf
# [4432] 1522685876.873974 # include: config/common/audio-lame.conf
# [4432] 1522685876.874060 # RTSP[config]: using 'udp' for RTP flows.
# [4432] 1522685876.874100 # RTSP[config]: controller port = 8555
# [4432] 1522685876.874131 # RTSP[config]: controller via 'udp' protocol.
# [4432] 1522685876.874189 # RTSP[config]: video-encoder = libx264 (libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
# [4432] 1522685876.874230 # RTSP[config]: audio-encoder = libmp3lame (libmp3lame MP3 (MPEG audio layer 3))
# [4432] 1522685876.874281 # RTSP[config]: video specific option: b = 3000000
# [4432] 1522685876.874316 # RTSP[config]: video specific option: g = 48
# [4432] 1522685876.874348 # RTSP[config]: video specific option: intra-refresh = 1
# [4432] 1522685876.874378 # RTSP[config]: video specific option: me_method = dia
# [4432] 1522685876.874410 # RTSP[config]: video specific option: me_range = 16
# [4432] 1522685876.874440 # RTSP[config]: video specific option: preset = faster
# [4432] 1522685876.874471 # RTSP[config]: video specific option: profile = main
# [4432] 1522685876.874501 # RTSP[config]: video specific option: refs = 1
# [4432] 1522685876.874532 # RTSP[config]: video specific option: slices = 4
# [4432] 1522685876.874563 # RTSP[config]: video specific option: threads = 4
# [4432] 1522685876.874594 # RTSP[config]: video specific option: tune = zerolatency
# [4432] 1522685876.874625 *** Crop disabled.
# [4432] 1522685876.878908 sink server: live555-rtsp-server registered
# [4432] 1522685876.878957 key-blocking initialized: 0+0 keys blocked.
# [4432] 1522685876.879015 sdl_replayer: sizeof(sdlmsg) = 64
# [4432] 1522685876.879465 sdl replayer: Replay using XTest (version 2.2) for display :0 screen 0, size=1280x1024.
# [4432] 1522685876.879793 XShm extention version 1.2 with shared pixmaps
# [4432] 1522685876.879832 X-Window-init: dimension: 1280x1024x8 @ 0/1
# [4432] 1522685876.879917 dpipe: 'video-0' initialized, 8 frames, framesize = 16384092
# [4432] 1522685876.913130 video-source: video-0 initialized max-curr-out = (2560x1600)-(1280x1024)-(1280x1024)
# [4432] 1522685876.914241 Frame converter created: from (1280,1024)[30] -> (1280,1024)[0]
# [4432] 1522685876.914343 dpipe: 'filter-0' initialized, 8 frames, framesize = 16384092
# [4432] 1522685876.948463 video encoder: video source #0 from 'filter-0' (1280x1024).
# [4432] 1522685876.948720 vencoder-init: option b = 3000000
# [4432] 1522685876.948755 vencoder-init: option g = 48
# [4432] 1522685876.948783 vencoder-init: option intra-refresh = 1
# [4432] 1522685876.948811 vencoder-init: option me_method = dia
# [4432] 1522685876.948839 vencoder-init: option me_range = 16
# [4432] 1522685876.948867 vencoder-init: option preset = faster
# [4432] 1522685876.948894 vencoder-init: option profile = main
# [4432] 1522685876.948921 vencoder-init: option refs = 1
# [4432] 1522685876.948949 vencoder-init: option slices = 4
# [4432] 1522685876.948977 vencoder-init: option threads = 4
# [4432] 1522685876.949004 vencoder-init: option tune = zerolatency
[libx264 @ 0x9518b40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
[libx264 @ 0x9518b40] profile Main, level 3.2
[libx264 @ 0x9518b40] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=dia subme=4 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=1 keyint=48 keyint_min=4 scenecut=40 intra_refresh=1 rc=abr mbtree=0 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
# [4432] 1522685876.958913 video encoder: initialized.
# [4432] 1522685876.959008 video encoder: ffmpeg-video-encoder registered
# [4432] 1522685876.959137 RGB2YUV filter[4443]: pipe#0 from 'video-0' to 'filter-0' (output-resolution=1280x1024)
# [4432] 1522685876.959229 video source thread started: tid=4442
# [4432] 1522685876.959290 controller socket: socket address [0.0.0.0:8555]
# [4432] 1522685876.959337 controller server started: tid=4441.
# [4432] 1522685876.960458 encoder: packet queue initialized (3x3145728 bytes)
# [4432] 1522685876.960516 qos-measurement: initialized.
# [4432] 1522685876.960587 (Use port 8000 for optional RTSP-over-HTTP tunneling.)
# [4432] 1522685983.386797 video encdoer: all started (1)
# [4432] 1522685983.386926 encoder client registered: total 1 clients.
# [4432] 1522685983.386990 encoder: pktqueue #0 callback registered (0xf55a88a0)
# [4432] 1522685983.387065 video encoder: h.264/found sps@4(24); pps@32(4)
# [4432] 1522685983.387118 GAMediaSubsession: video/H264 SPS=0xdcfc346c(24); PPS=0xdcfc356c(4); profile_level_id=4d4020
# [4432] 1522685983.387191 qos: add sink#1 for H.264, rtpsink=0xdc6061f8
# [4432] 1522685983.387255 encoder client unregistered: 0 clients left.
# [4432] 1522685983.387290 encoder: no more clients, quitting ...
# [4432] 1522685983.387355 video encoding started: tid=4445 1280x1024@24fps, nalbuf_size=15828640, pic_in_size=1966080.
# [4432] 1522685983.387402 video encoder: thread terminated (tid=4445).
# [4432] 1522685983.387446 video encdoer: all stopped (1)
[libx264 @ 0x9518b40] final ratefactor: 23.57
# [4432] 1522685983.388265 video encoder: deinitialized.
# [4432] 1522685983.741415 video encoder: video source #0 from 'filter-0' (1280x1024).
# [4432] 1522685983.741772 vencoder-init: option b = 3000000
# [4432] 1522685983.741819 vencoder-init: option g = 48
# [4432] 1522685983.741870 vencoder-init: option intra-refresh = 1
# [4432] 1522685983.741926 vencoder-init: option me_method = dia
# [4432] 1522685983.741975 vencoder-init: option me_range = 16
# [4432] 1522685983.742020 vencoder-init: option preset = faster
# [4432] 1522685983.742086 vencoder-init: option profile = main
# [4432] 1522685983.742123 vencoder-init: option refs = 1
# [4432] 1522685983.742154 vencoder-init: option slices = 4
# [4432] 1522685983.742188 vencoder-init: option threads = 4
# [4432] 1522685983.742218 vencoder-init: option tune = zerolatency
[libx264 @ 0xdc605f40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
[libx264 @ 0xdc605f40] profile Main, level 3.2
[libx264 @ 0xdc605f40] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=dia subme=4 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=1 keyint=48 keyint_min=4 scenecut=40 intra_refresh=1 rc=abr mbtree=0 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
# [4432] 1522685983.749123 video encoder: initialized.
# [4432] 1522685983.749175 video encdoer: all started (1)
# [4432] 1522685983.749209 encoder client registered: total 1 clients.
# [4432] 1522685983.749241 encoder: pktqueue #0 callback registered (0xf55a88a0)
# [4432] 1522685983.749301 video encoder: h.264/found sps@4(24); pps@32(4)
# [4432] 1522685983.749336 GAMediaSubsession: video/H264 SPS=0xdcfc353c(24); PPS=0xdcfc363c(4); profile_level_id=4d4020
# [4432] 1522685983.749385 qos: add sink#1 for H.264, rtpsink=0xe3471b60
# [4432] 1522685983.749480 video encoding started: tid=4454 1280x1024@24fps, nalbuf_size=15828640, pic_in_size=1966080.
# [4432] 1522685983.775570 first video frame written (pts=0)
# [4432] 1522686049.085120 encoder client unregistered: 0 clients left.
# [4432] 1522686049.085221 encoder: no more clients, quitting ...
# [4432] 1522686049.102929 video encoder: thread terminated (tid=4454).
# [4432] 1522686049.103052 video encdoer: all stopped (1)
[libx264 @ 0xdc605f40] frame I:1 Avg QP: 7.00 size: 447
[libx264 @ 0xdc605f40] frame P:1568 Avg QP: 0.01 size: 216
[libx264 @ 0xdc605f40] mb I I16..4: 99.9% 0.0% 0.1%
[libx264 @ 0xdc605f40] mb P I16..4: 3.2% 0.0% 0.0% P16..4: 0.0% 0.0% 0.0% 0.0% 0.0% skip:96.8%
[libx264 @ 0xdc605f40] final ratefactor: -29.32
[libx264 @ 0xdc605f40] coded y,uvDC,uvAC intra: 0.0% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
[libx264 @ 0xdc605f40] i16 v,h,dc,p: 94% 0% 6% 0%
[libx264 @ 0xdc605f40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 0% 0% 100% 0% 0% 0% 0% 0% 0%
[libx264 @ 0xdc605f40] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0xdc605f40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0xdc605f40] kb/s:41.58
# [4432] 1522686049.104181 video encoder: deinitialized.I think the IP address in RTSP header is the LAN IP of the device which is causing the making the connection to fail. The same software works fine from the LAN. Any help is appreciated.
-
Compress video FFMPEG doesn't work
13 février 2018, par Douglas AnunciaçãoI’m trying to compress video using FFMPEG and this library : https://github.com/guardianproject/android-ffmpeg-java
I imported ffmpeglib as a module in my project. This is the code is use to compress :
public class MainActivity extends Activity {
private ArrayList<Object> listVideoPaths = new ArrayList<>();<br />
<br />
@Override<br />
protected void onCreate(Bundle savedInstanceState) {<br />
super.onCreate(savedInstanceState);<br />
setContentView(R.layout.activity_main);<br />
<br />
getGalleryVideos();<br />
<br />
File videoFolderFile = new File("/storage/emulated/0/DCIM/Camera/");<br />
<br />
if(videoFolderFile.exists())<br />
Log.e("TEST FFMPEG", "video folder exist");<br />
else<br />
Log.e("TEST FFMPEG", "video folder DON'T exist");<br />
<br />
<br />
File videoInputFile = new File(listVideoPaths.get(0).toString());<br />
<br />
if(videoInputFile.exists())<br />
Log.e("TEST FFMPEG", "video input file exist");<br />
else<br />
Log.e("TEST FFMPEG", "video input file DON'T exist");<br />
<br />
File videoOutputFile = new File(videoFolderFile,"output.mp4");<br />
<br />
if(videoOutputFile.exists())<br />
Log.e("TEST FFMPEG", "video output file exist");<br />
else<br />
Log.e("TEST FFMPEG", "video output file DON'T exist");<br />
<br />
FfmpegController ffmpegController;<br />
<br />
try {<br />
ffmpegController = new FfmpegController(this,videoFolderFile);<br />
<br />
Clip mediaIn = new Clip();<br />
<br />
mediaIn.path = videoInputFile.getAbsolutePath();<br />
<br />
mediaIn.videoFps = "25";<br />
<br />
ffmpegController.convertToMPEG(mediaIn, videoOutputFile.getAbsolutePath(), new ShellUtils.ShellCallback() {<br />
<br />
@Override<br />
public void shellOut(String shellLine) {<br />
Log.e("TEST FFMPEG", "shellOut - " + shellLine);<br />
}<br />
<br />
@Override<br />
public void processComplete(int exitValue) {<br />
Log.e("TEST FFMPEG", "proccess complete - " + exitValue);<br />
}<br />
});<br />
<br />
<br />
} catch (IOException e) {<br />
e.printStackTrace();<br />
} catch (Exception e) {<br />
e.printStackTrace();<br />
}finally {<br />
<br />
if(videoOutputFile.exists())<br />
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file exist");<br />
else<br />
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file DON'T exist");<br />
<br />
}<br />
}<br />
<br />
private void getGalleryVideos(){<br />
<br />
Cursor videoCursor = null;<br />
<br />
try {<br />
<br />
final String[] columns = { Media.DATA,<br />
Media._ID,<br />
Media.DATE_ADDED };<br />
<br />
final String orderBy = Media.DATE_ADDED;<br />
<br />
videoCursor = getContentResolver().query(<br />
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, columns,<br />
null, null, orderBy);<br />
<br />
if (videoCursor != null &amp;&amp; videoCursor.getCount() > 0) {<br />
<br />
while (videoCursor.moveToNext()) {<br />
<br />
int dataColumnIndex = videoCursor<br />
.getColumnIndex(Media.DATA);<br />
<br />
listVideoPaths.add(videoCursor<br />
.getString(dataColumnIndex));<br />
<br />
}<br />
<br />
}<br />
<br />
Collections.sort(listVideoPaths,new Comparator());<br />
<br />
} catch (Exception e) {<br />
<br />
e.printStackTrace();<br />
<br />
} finally {<br />
<br />
if (videoCursor != null) {<br />
<br />
if (!videoCursor.isClosed()) {<br />
<br />
videoCursor.close();<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
</code></pre><br />
<br />
<p>I get no error but the video doesn't play. The log file is:</p><br />
<br />
<blockquote><br />
<p>3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video folder exist 07-30 14:31:57.389<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video input file exist 07-30 14:31:57.389<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video output file DON'T exist 07-30 14:31:58.363<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut -<br />
/data/data/douglasanunciacao.androidffmpegjavateste/app_bin/ffmpeg -y<br />
-i /storage/emulated/0/DCIM/Camera/VID_20150730_142330563.mp4 -f mpeg /storage/emulated/0/DCIM/Camera/output.mp4 07-30 14:31:58.385<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - WARNING: linker:<br />
/data/data/douglasanunciacao.androidffmpegjavateste/app_bin/ffmpeg has<br />
text relocations. This is wasting memory and prevents security<br />
hardening. Please fix. 07-30 14:31:58.390<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg<br />
developers 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - built on Dec 22 2014 12:52:34 with gcc 4.6 20120106<br />
(prerelease) 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - configuration: --arch=arm --cpu=cortex-a8<br />
--target-os=linux --enable-runtime-cpudetect --prefix=/data/data/info.guardianproject.ffmpeg/app_opt --enable-pic --disable-shared --enable-static --cross-prefix=/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-<br />
--sysroot=/home/n8fr8/dev/android/ndk/platforms/android-16/arch-arm --extra-cflags='-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie' --extra-ldflags='-L../x264 -fPIE -pie' --enable-version3 --enable-gpl --disable-doc --enable-yasm --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --enable-parsers --enable-protocols --enable-filters --enable-avresample --enable-libfreetype --disable-indevs --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavutil 51. 54.100 / 51. 54.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavcodec 54. 23.100 / 54. 23.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavformat 54. 6.100 / 54. 6.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavdevice 54. 0.100 / 54. 0.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavfilter 2. 77.100 / 2. 77.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libswscale 2. 1.100 / 2. 1.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libswresample 0. 15.100 / 0. 15.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libpostproc 52. 0.100 / 52. 0.100 07-30 14:31:58.868<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Input #0, mov,mp4,m4a,3gp,3g2,mj2, from<br />
'/storage/emulated/0/DCIM/Camera/VID_20150730_142330563.mp4': 07-30<br />
14:31:58.869 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Metadata: 07-30 14:31:58.869<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - major_brand : mp42 07-30 14:31:58.870<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - minor_version : 0 07-30 14:31:58.871<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - compatible_brands: isommp42 07-30 14:31:58.872<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.873 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Duration: 00:00:01.89, start: 0.000000,<br />
bitrate: 17571 kb/s 07-30 14:31:58.874<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Stream #0:0(eng): Video: h264 (High) (avc1 /<br />
0x31637661), yuv420p, 1920x1080, 15874 kb/s, SAR 65536:65536 DAR 16:9,<br />
23.90 fps, 23.92 tbr, 90k tbn, 180k tbc 07-30 14:31:58.875 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.876<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - rotate : 270 07-30 14:31:58.877<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : VideoHandle 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1(eng): Audio: aac (mp4a /<br />
0x6134706D), 48000 Hz, stereo, s16, 127 kb/s 07-30 14:31:58.878<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.878<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : SoundHandle 07-30<br />
14:31:58.882 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - [buffer @ 0xb5cce0a0] w:1920 h:1080<br />
pixfmt:yuv420p tb:1/90000 sar:65536/65536 sws_param:flags=2 07-30<br />
14:31:58.882 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - [buffersink @ 0xb5cce0d0] No opaque field<br />
provided 07-30 14:31:58.891<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - [mpeg @ 0xb5c3df00] VBV buffer size not set, muxing may<br />
fail 07-30 14:31:58.892<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Output #0, mpeg, to<br />
'/storage/emulated/0/DCIM/Camera/output.mp4': 07-30 14:31:58.894<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.895<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - major_brand : mp42 07-30 14:31:58.896<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - minor_version : 0 07-30 14:31:58.896<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - compatible_brands: isommp42 07-30 14:31:58.897<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.898 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - encoder : Lavf54.6.100 07-30<br />
14:31:58.898 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:0(eng): Video: mpeg1video,<br />
yuv420p, 1920x1080 [SAR 65536:65536 DAR 16:9], q=2-31, 200 kb/s, 90k<br />
tbn, 23.98 tbc 07-30 14:31:58.899<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.899<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - rotate : 270 07-30 14:31:58.900<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.901 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : VideoHandle 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1(eng): Audio: mp2, 48000 Hz,<br />
stereo, s16, 128 kb/s 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : SoundHandle 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream mapping: 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Stream #0:0 -> #0:0 (h264 -> mpeg1video) 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1 -> #0:1 (aac -> mp2) 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Press [q] to stop, [?] for help 07-30<br />
14:31:59.824 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - frame= 4 fps=0.0 q=2.0 size= 0kB<br />
time=00:00:00.08 bitrate= 0.0kbits/s 07-30 14:32:02.029<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 8 fps=2.7 q=10.5 size= 4kB time=00:00:00.25<br />
bitrate= 130.9kbits/s 07-30 14:32:02.536<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 13 fps=3.7 q=25.2 size= 696kB time=00:00:00.45<br />
bitrate=12427.3kbits/s 07-30 14:32:03.045<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 18 fps=4.4 q=31.0 size= 750kB time=00:00:00.66<br />
bitrate=9206.8kbits/s 07-30 14:32:03.582<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 23 fps=5.0 q=31.0 size= 786kB time=00:00:00.87<br />
bitrate=7351.4kbits/s 07-30 14:32:04.140<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 28 fps=5.5 q=31.0 size= 862kB time=00:00:01.08<br />
bitrate=6511.8kbits/s 07-30 14:32:05.239<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 30 fps=4.8 q=31.0 size= 876kB time=00:00:01.16<br />
bitrate=6144.9kbits/s 07-30 14:32:05.746<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 35 fps=5.2 q=31.0 size= 910kB time=00:00:01.37<br />
bitrate=5416.2kbits/s 07-30 14:32:06.317<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 41 fps=5.6 q=31.0 size= 972kB time=00:00:01.62<br />
bitrate=4895.2kbits/s 07-30 14:32:06.832<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 45 fps=5.7 q=31.0 Lsize= 1022kB<br />
time=00:00:01.83 bitrate=4562.1kbits/s 07-30 14:32:06.832<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - video:984kB audio:30kB global headers:0kB muxing overhead<br />
0.756932% 07-30 14:32:06.858 3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
proccess complete - 0 07-30 14:32:06.858<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
terminou o ffmpeg ---> video output file exist</p><br />
</blockquote><br />
<br />
<p>Does anyone knows how to solve this problem? Thanks in advance.</p>