
Recherche avancée
Médias (2)
-
Core Media Video
4 avril 2013, par
Mis à jour : Juin 2013
Langue : français
Type : Video
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (106)
-
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 -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...) -
Formulaire personnalisable
21 juin 2013, parCette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire. (...)
Sur d’autres sites (11768)
-
How to complete your privacy policy with Matomo analytics under GDPR
25 avril 2018, par InnoCraftImportant note : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to show you how to complete your existing privacy policy by adding the parts related to Matomo in order to comply with GDPR. 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. This blog post contains public sector information licensed under the Open Government Licence v3.0.
Neither the GDPR official text or ICO are mentioning the words ‘privacy policy’. They use the words ‘privacy notice’ instead. As explained within our previous blog post about “How to write a privacy notice for Matomo”, the key concepts of privacy information are transparency and accessibility which are making the privacy notice very long.
As a result, we prefer splitting the privacy notice into two parts :
- Privacy notice : straight to the point information about how personal data is processed at the time of the data collection. This is the subject of the our previous blog post.
- Privacy policy : a web page explaining in detail all the personal data you are processing and how visitors/users can exercise their rights. This is the blog post you are reading.
Writing/updating your privacy policy page can be one of the most challenging task under GDPR.
In order to make this mission less complicated, we have designed a template which you can use to complete the privacy policy part that concerns Matomo.
Which information should your privacy policy include ?
ICO is giving a clear checklist about what a privacy policy has to contain when the data is obtained from the data subject :
- Identity and contact details of the controller and where applicable, the controller’s representative and the data protection officer.
- Purpose of the processing and the legal basis for the processing.
- The legitimate interests of the controller or third party, where applicable.
- Any recipient or categories of recipients of the personal data.
- Details of transfers to third country and safeguards.
- Retention period or criteria used to determine the retention period.
- The existence of each of data subject’s rights.
- The right to withdraw consent at any time, where relevant.
- The right to lodge a complaint with a supervisory authority.
- Whether the provision of personal data part of a statutory or contractual requirement or obligation and possible consequences of failing to provide the personal data.
- The existence of automated decision-making, including profiling and information about how decisions are made, the significance and the consequences.
So in order to use Matomo with due respect to GDPR you need to answer each of those points within your privacy policy.
Matomo’s privacy policy template
You will find below some examples to each point requested by GDPR. Those answers are just guidelines, they are not perfect, feel free to copy/paste them according to your needs.
Note that this template needs to be tweaked according to the lawful basis you choose.
1 – About Matomo
Note : this part should describe the data controller instead, which is your company. But as you may already have included this part within your existing privacy policy, we prefer here to introduce what is Matomo.
Matomo is an open source web analytics platform. A web analytics platform is used by a website owner in order to measure, collect, analyse and report visitors data for purposes of understanding and optimizing their website. If you would like to see what Matomo looks like, you can access a demo version at : https://demo.matomo.org.
2 – Purpose of the processing
Matomo is used to analyse the behaviour of the website visitors to identify potential pitfalls ; not found pages, search engine indexing issues, which contents are the most appreciated… Once the data is processed (number of visitors reaching a not found pages, viewing only one page…), Matomo is generating reports for website owners to take action, for example changing the layout of the pages, publishing some fresh content… etc.
Matomo is processing the following personal data :
Pick up the one you are using :
- Cookies
- IP address
- User ID
- Custom Dimensions
- Custom Variables
- Order ID
- Location of the user
And also :
- Date and time
- Title of the page being viewed
- URL of the page being viewed
- URL of the page that was viewed prior to the current page
- Screen resolution
- Time in local timezone
- Files that were clicked and downloaded
- Link clicks to an outside domain
- Pages generation time
- Country, region, city
- Main Language of the browser
- User Agent of the browser
This list can be completed with additional features such as :
- Session recording, mouse events (movements, content forms and clicks)
- Form interactions
- Media interactions
- A/B Tests
Pick up one of the two :
- The processing of personal data with Matomo is based on legitimate interests, or :
- The processing of personal data with Matomo is based on explicit consent. Your privacy is our highest concern. That’s why we will not process any personal data with Matomo unless you give us clear explicit consent.
3 – The legitimate interests
This content applies only if you are processing personal data based on legitimate interests. You need here to justify your legitimate interests to process personal data. It is a set of questions described here.
Processing your personal data such as cookies is helping us identify what is working and what is not on our website. For example, it helps us identify if the way we are communicating is engaging or not and how we can organize the structure of the website better. Our team is benefiting from the processing of your personal data, and they are directly acting on the website. By processing your personal data, you can profit from a website which is getting better and better.
Without the data, we would not be able to provide you the service we are currently offering to you. Your data will be used only to improve the user experience on our website and help you find the information you are looking for.
4 – Recipient of the personal data
The personal data received through Matomo are sent to :
- Our company.
- Our web hosting provider : name and contact details of the web hosting provider.
Note : If you are using the Matomo Analytics Cloud by InnoCraft the web hosting provider is “InnoCraft, 150 Willis St, 6011 Wellington, New Zealand“.
5 – Details of transfers to third country and safeguards
Matomo data is hosted in Name of the country.
If the country mentioned is not within the EU, you need to mention here the appropriate safeguards, for example : our data is hosted in the United States within company XYZ, registered to the Privacy Shield program.
Note : The Matomo Analytics Cloud by InnoCraft is currently hosted in France. If you are using the cloud-hosted solution of Matomo, use “France” as name of the country.
6 – Retention period or criteria used to determine the retention period
We are keeping the personal data captured within Matomo for a period of indicate here the period.
Justify your choice, for example : as our data is hosted in France, we are applying the French law which defines a retention period of no more than 13 months. You can set the retention period in Matomo by using the following feature.
7 – The existence of each of the data subject’s rights
If you are processing personal data with Matomo based on legitimate interest :
As Matomo is processing personal data on legitimate interests, you can exercise the following rights :
- Right of access : you can ask us at any time to access your personal data.
- Right to erasure : you can ask us at any time to delete all the personal data we are processing about you.
- Right to object : you can object to the tracking of your personal data by using the following opt-out feature :
Insert here the opt-out feature.
If you are processing personal data with Matomo based on explicit consent :
As Matomo is processing personal data on explicit consent, you can exercise the following rights :
- Right of access : you can ask us at any time to access your personal data.
- Right to erasure : you can ask us at any time to delete all the personal data we are processing about you.
- Right to portability : you can ask us at any time for a copy of all the personal data we are processing about you in Matomo.
- Right to withdraw consent : you can withdraw your consent at any time by clicking on the following button.
8 – The right to withdraw consent at any time
If you are processing personal data under the consent lawful basis, you need to include the following section :
You can withdraw at any time your consent by clicking here (insert here the Matomo tracking code to remove consent).
9 – The right to lodge a complaint with a supervisory authority
If you think that the way we process your personal data with Matomo analytics is infringing the law, you have the right to lodge a complaint with a supervisory authority.
10 – Whether the provision of personal data is part of a statutory or contractual requirement ; or obligation and possible consequences of failing to provide the personal data
If you wish us to not process any personal data with Matomo, you can opt-out from it at any time. There will be no consequences at all regarding the use of our website.
11 – The existence of automated decision-making, including profiling and information about how decisions are made, the significance and the consequences
Matomo is not doing any profiling.
That’s the end of our blog post. We hope you enjoyed reading it and that it will help you get through the GDPR compliance process. If you have any questions dealing with this privacy policy in particular, do not hesitate to contact us.
The post How to complete your privacy policy with Matomo analytics under GDPR appeared first on Analytics Platform - Matomo.
-
How to stop ffmpeg m3u8 download if not getting any stream update ?
6 juillet 2022, par TheNoFaceI'm making a bash script to download m3u8 stream on particular time using crontab.



Sometimes server-sent stream url is invalid or stream stops because server fails to stream.
In both cases, playlist.m3u8 and chunk.m3u8 are both downloadable but stream file pieces in chunk.m3u8 don't update any longer. But ffmpeg keeps downloading "nothing" since chunk.m3u8 file contains any new streams.



Input command :



ffmpeg -i 'https://link.to/playlist.m3u8' -c copy -o '~/filename.ts'




On abnormal cases :



[generic] playlist: Requesting header
[generic] playlist: Downloading m3u8 information
[download] Destination: ~/filename.ts
ffmpeg version 4.2.2-1ubuntu1 Copyright (c) 2000-2019 the FFmpeg developers
 built with gcc 9 (Ubuntu 9.3.0-3ubuntu1)
 configuration: --prefix=/usr --extra-version=1ubuntu1 --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --arch=arm64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
 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
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T08:39:03.510Z"')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T09:55:03.510Z')
[hls @ 0xaaaad4c595f0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/1080p_754675733_1591264503510_4560_0_1520.ts' for reading
[hls @ 0xaaaad4c595f0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/1080p_3899144139_1591264506510_4563_0_1521.ts' for reading
Input #0, hls, from 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/chunklist_1080p.m3u8?_lsu_sa_=34293a1b681e3215730af2d06bd2331c0bf63558842b19103c567c089eb73f39a386cb3a3216e4f841953991fe21c6821af7de68487ee7832b07d8818204ea0d16305d82b0a6e32c815f1544c9b7ae73e8ff4b51b90a3efb7035fb3dabb087e9134cb2e39733138d4f353073864f335e15e0a250c7e3cb61d4aaf83615efe414&_lsu_et_=1591292344':
 Duration: N/A, start: 4560.000000, bitrate: N/A
 Program 0 
 Metadata:
 variant_bitrate : 0
 Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 0
 Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/bt709/bt709), 1080x1920 [SAR 1:1 DAR 9:16], 30 fps, 30 tbr, 90k tbn, 60 tbc
 Metadata:
 variant_bitrate : 0
 Stream #0:2: Data: timed_id3 (ID3 / 0x20334449)
 Metadata:
 variant_bitrate : 0
Output #0, mp4, to 'file:~/filename.ts.part':
 Metadata:
 encoder : Lavf58.29.100
 Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt709/bt709), 1080x1920 [SAR 1:1 DAR 9:16], q=2-31, 30 fps, 30 tbr, 90k tbn, 90k tbc
 Metadata:
 variant_bitrate : 0
 Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 0
Stream mapping:
 Stream #0:1 -> #0:0 (copy)
 Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[https @ 0xaaaad4f28ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/1080p_2058418743_1591264509510_4566_0_1522.ts' for reading
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T08:39:03.510Z"')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T09:55:03.510Z')
[https @ 0xaaaad55bfd50] Opening 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/chunklist_1080p.m3u8?_lsu_sa_=34293a1b681e3215730af2d06bd2331c0bf63558842b19103c567c089eb73f39a386cb3a3216e4f841953991fe21c6821af7de68487ee7832b07d8818204ea0d16305d82b0a6e32c815f1544c9b7ae73e8ff4b51b90a3efb7035fb3dabb087e9134cb2e39733138d4f353073864f335e15e0a250c7e3cb61d4aaf83615efe414&_lsu_et_=1591292344' for reading
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T08:39:03.510Z"')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T09:55:03.510Z')
[https @ 0xaaaad55bfd50] Opening 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/chunklist_1080p.m3u8?_lsu_sa_=34293a1b681e3215730af2d06bd2331c0bf63558842b19103c567c089eb73f39a386cb3a3216e4f841953991fe21c6821af7de68487ee7832b07d8818204ea0d16305d82b0a6e32c815f1544c9b7ae73e8ff4b51b90a3efb7035fb3dabb087e9134cb2e39733138d4f353073864f335e15e0a250c7e3cb61d4aaf83615efe414&_lsu_et_=1591292344' for reading
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T08:39:03.510Z"')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T09:55:03.510Z')
[https @ 0xaaaad55bfd50] Opening 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/chunklist_1080p.m3u8?_lsu_sa_=34293a1b681e3215730af2d06bd2331c0bf63558842b19103c567c089eb73f39a386cb3a3216e4f841953991fe21c6821af7de68487ee7832b07d8818204ea0d16305d82b0a6e32c815f1544c9b7ae73e8ff4b51b90a3efb7035fb3dabb087e9134cb2e39733138d4f353073864f335e15e0a250c7e3cb61d4aaf83615efe414&_lsu_et_=1591292344' for reading
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T08:39:03.510Z"')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T09:55:03.510Z')
[https @ 0xaaaad55bfd50] Opening 'https://now-livecloud.pstatic.net/lip2_kr/anmss0003/nsmu2pe5nj6lx4hhtmsv4fmlbam0a4qelq/chunklist_1080p.m3u8?_lsu_sa_=34293a1b681e3215730af2d06bd2331c0bf63558842b19103c567c089eb73f39a386cb3a3216e4f841953991fe21c6821af7de68487ee7832b07d8818204ea0d16305d82b0a6e32c815f1544c9b7ae73e8ff4b51b90a3efb7035fb3dabb087e9134cb2e39733138d4f353073864f335e15e0a250c7e3cb61d4aaf83615efe414&_lsu_et_=1591292344' for reading
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T08:39:03.510Z"')
[hls @ 0xaaaad4c595f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T09:55:03.510Z')

...and still goes on until server stops serving playlist.m3u8 file.




On normal case :



[generic] playlist: Requesting header
[generic] playlist: Downloading m3u8 information
[download] Destination: ~/filename.ts
ffmpeg version 4.2.2-1ubuntu1 Copyright (c) 2000-2019 the FFmpeg developers
 built with gcc 9 (Ubuntu 9.3.0-3ubuntu1)
 configuration: --prefix=/usr --extra-version=1ubuntu1 --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --arch=arm64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
 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
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:01.419Z')
[hls @ 0xaaaaded3a5f0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_2140588392_1591268161419_3627_0_1209.ts' for reading
[hls @ 0xaaaaded3a5f0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_1159973342_1591268164419_3630_0_1210.ts' for reading
Input #0, hls, from 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832':
 Duration: N/A, start: 3627.000000, bitrate: N/A
 Program 0 
 Metadata:
 variant_bitrate : 0
 Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 0
 Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/bt709/bt709), 1080x1920 [SAR 1:1 DAR 9:16], 30 fps, 30 tbr, 90k tbn, 60 tbc
 Metadata:
 variant_bitrate : 0
 Stream #0:2: Data: timed_id3 (ID3 / 0x20334449)
 Metadata:
 variant_bitrate : 0
Output #0, mp4, to 'file:~/filename.ts.part':
 Metadata:
 encoder : Lavf58.29.100
 Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt709/bt709), 1080x1920 [SAR 1:1 DAR 9:16], q=2-31, 30 fps, 30 tbr, 90k tbn, 90k tbc
 Metadata:
 variant_bitrate : 0
 Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 0
Stream mapping:
 Stream #0:1 -> #0:0 (copy)
 Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[https @ 0xaaaadf009ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_3958358483_1591268167419_3633_0_1211.ts' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:04.419Z')
[https @ 0xaaaadf009ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_3853948217_1591268170419_3636_0_1212.ts' for reading
frame= 269 fps= 95 q=-1.0 size= 3072kB time=00:00:09.01 bitrate=2792.9kbits/s speed=3.18x 
[https @ 0xaaaadf6e02c0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:07.419Z')
[https @ 0xaaaadf009ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_2889557048_1591268173419_3639_0_1213.ts' for reading
frame= 359 fps= 61 q=-1.0 size= 4096kB time=00:00:12.01 bitrate=2791.9kbits/s speed=2.04x 
[https @ 0xaaaadf6e02c0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:10.419Z')
[https @ 0xaaaadf009ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_3485591329_1591268176419_3642_0_1214.ts' for reading
frame= 449 fps= 50 q=-1.0 size= 5120kB time=00:00:15.00 bitrate=2795.2kbits/s speed=1.67x 
[https @ 0xaaaadf6e02c0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:13.419Z')
[https @ 0xaaaadf009ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_2256435886_1591268179419_3645_0_1215.ts' for reading
frame= 539 fps= 45 q=-1.0 size= 6144kB time=00:00:18.01 bitrate=2794.2kbits/s speed= 1.5x 
[https @ 0xaaaadf6e02c0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:16.419Z')
[https @ 0xaaaadf009ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_1520430104_1591268182419_3648_0_1216.ts' for reading
frame= 629 fps= 42 q=-1.0 size= 7168kB time=00:00:21.02 bitrate=2793.4kbits/s speed=1.39x 
[https @ 0xaaaadf6e02c0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:22.419Z')
[https @ 0xaaaadf009ae0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_2229049379_1591268185419_3651_0_1217.ts' for reading
[https @ 0xaaaadf02f510] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_2659945939_1591268188419_3654_0_1218.ts' for reading
frame= 719 fps= 40 q=-1.0 size= 8192kB time=00:00:24.00 bitrate=2795.3kbits/s speed=1.32x 
[https @ 0xaaaadf6e02c0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:22.419Z')
[https @ 0xaaaadf6e02c0] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/chunklist_1080p.m3u8?_lsu_sa_=31b94f1b48b03755160d6263630248165b873b582123194d369663096e903e691d87ab6c3fb63dfd517e3cf1d320760604ceaed2b168d017061fe4d08822506a7314482b165f2011119469a5c2486518636d7a0eea9dba559babdca7edaf80bb087564aa35bf9df154fc6bb35f54dd397e99a576174fe805da71c8b5cc86feb4&_lsu_et_=1591298832' for reading
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-VERSION:3')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-ALLOW-CACHE:NO')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-DATERANGE:ID="nmss-daterange",START-DATE="2020-06-04T09:55:34.419Z"')
[hls @ 0xaaaaded3a5f0] Skip ('#EXT-X-PROGRAM-DATE-TIME:2020-06-04T10:56:25.419Z')
[https @ 0xaaaadf02f510] Opening 'https://now-livecloud.pstatic.net/lip2_kr/cnmss0003/hbt6zn63jhkvtx8exbddrfrlbc8ioxe4ux/1080p_4119016691_1591268191419_3657_0_1219.ts' for reading
frame= 899 fps= 40 q=-1.0 size= 10240kB time=00:00:30.00 bitrate=2796.0kbits/s speed=1.32x

...and still goes on until server stops serving playlist.m3u8 file.




So, how can I make ffmpeg to stop when there's update no more on chunk.m3u8 file after some tries ?


-
Dreamcast Anniversary Programming
10 septembre 2010, par Multimedia Mike — Game HackingThis day last year saw a lot of nostalgia posts on the internet regarding the Sega Dreamcast, launched 10 years prior to that day (on 9/9/99). Regrettably, none of the retrospectives that I read really seemed to mention the homebrew potential, which is the aspect that interested me. On the occasion of the DC’s 11th anniversary, I wanted to remind myself how to build something for the unit and do so using modern equipment and build tools.
Background
Like many other programmers, I initially gained interest in programming because I desired to program video games. Not content to just plunk out games on a PC, I always had a deep, abiding ambition to program actual video game hardware. That is, I wanted to program a purpose-built video game console. The Sega Dreamcast might be the most ideal candidate to ever emerge for that task. All that was required to run your own software on the unit was the console, a PC, some free software tools, and a special connectivity measure.The Equipment
Here is the hardware required (ideally) to build software for the DC :- The console itself (I happen to have 3 of them laying around, as pictured above)
- Some peripherals : Such as the basic DC controller, the DC keyboard (flagship title : Typing of the Dead), and the visual memory unit (VMU)
- VGA box : The DC supported 480p gaming via a device that allowed you to connect the console straight to a VGA monitor via 15-pin D-sub. Not required for development, but very useful. I happen to have 3 of them from different third parties :
- Finally, the connectivity measure for hooking the DC to the PC.
There are 2 options here. The first is rare, expensive and relatively fast : A DC broadband adapter. The second is slower but much less expensive and relatively easy to come by– the DC coder’s cable. This was a DB-9 adapter on one end and a DC serial adapter on the other, and a circuit in the middle to monkey with voltage levels or some such ; I’m no electrical engineer. I procured this model from the notorious Lik Sang, well before that outfit was sued out of business.
Dealing With Legacy
Take a look at that coder’s cable again. DB-9 ? When was the last time you owned a computer with one of those ? And then think farther back to the last time to had occasion to plug something into one of those ports (likely a serial mouse).
A few years ago, someone was about to toss out this Belkin USB to DB-9 serial converter when I intervened. I foresaw the day when I would dust off the coder’s cable. So now I can connect a USB serial cable to my Eee PC, which then connects via converter to a different serial cable, one which has its own conversion circuit that alters the connection to yet another type of serial cable.
Bits is bits is bits as far as I’m concerned.
Putting It All Together
Now to assemble all the pieces (plus a monitor) into one development desktop :
The monitor says “dcload 1.0.3, idle…”. That’s a custom boot CD-ROM that is patiently waiting to receive commands, code and data via the serial port.
Getting The Software
Back in the day, homebrew software development on the DC revolved around these components :- GNU binutils : for building base toolchains for the Hitachi SH-4 main CPU as well as the ARM7-based audio coprocessor
- GNU gcc/g++ : for building compilers on top of binutils for the 2 CPUs
- Newlib : a C library intended for embedded systems
- KallistiOS : an open source, real-time OS developed for the DC
The DC was my first exposure to building cross compilers. I developed some software for the DC in the earlier part of the decade. Now, I am trying to figure out how I did it, especially since I think I came up with a few interesting ideas at the time.
Struggling With the Software Legacy
The source for KallistiOS has gone untouched since about 2004 but is still around thanks to Sourceforge. The instructions for properly building the toolchain have been lost to time, or would be were it not for the Internet Archive’s copy of a site called Hangar Eleven. Also, KallistiOS makes reference to a program called ‘dc-tool’ which is needed on the client side for communicating with dcload. I was able to find this binary at the Boob ! site (well-known in DC circles).I was able to build the toolchain using binutils 2.20.1, gcc 4.5.1 and newlib 1.18.0. Building the toolchain is an odd process as it requires building the binutils, then building the C compiler, then newlib, and then building the C compiler again along with the C++ compiler because the C++ compiler depends on newlib.
With some effort, I got the toolchain to build KallistiOS and most of its example programs. I documented most of the tweaks I had to make, several of them exactly the same as this one that I recently discovered while resurrecting a 10-year-old C program (common construct in C programming of old ?).
Moment of Truth
So I had some example programs built as ELF files. I told dc-tool to upload and run them on the waiting console. Unfortunately, the tool would just sort of stall, though some communication had evidently taken place. It has been many years since I have seen this in action but I recall that something more ought to be happening.Plan B (Hardware)
This is the point that I remember that I have been holding onto one rather old little machine that still has a DB-9 serial port. It’s not especially ergonomic to set up. I have to run it on my floor because, to connect it to my network, I need to run a 25′ ethernet cable that just barely reaches from the other room. The machine doesn’t seem to like USB keyboards, which is a shame since I have long since ditched any PS/2 keyboards. Fortunately, the box still has an old Gentoo distro and is running sshd, a holdover from its former life as a headless box.
Now when I run dc-tool, both the PC and DC report the upload progress while pretty overscan bars oscillate on the DC’s monitor. Now I’m back in business, until…
Plan C (Software)
None of these KallistiOS example programs are working. Some are even reporting catastrophic failures (register dumps) via the serial console. That’s when I remember that gcc can be a bit fickle on CPU architectures that are not, shall we say, first-class citizens. Back in the day, gcc 2.95 was a certified no-go for SH-4 development. 3.0.3 or 3.0.4 was called upon at the time. As I’m hosting this toolchain on x86_64 right now, gcc 3.0.4 can’t even be built (predates the architecture).One last option : As I searched through my old DC project directories, I found that I still have a lot of the resulting binaries, the ones I built 7-8 years ago. I upload a few of those and I finally see homebrew programming at work again, including this old program (described in detail here).
Next Steps
If I ever feel like revisiting this again, I suppose I can try some of the older 4.x series to see if they build valid programs. Alternatively, try building an x86_32-hosted 3.0.4 toolchain which ought to be a known good. And if that fails, search a little bit more to find that there are still active Dreamcast communities out there on the internet which probably have development toolchain binaries ready for download.