
Recherche avancée
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 (...) -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Utilisation et configuration du script
19 janvier 2011, parInformations spécifiques à la distribution Debian
Si vous utilisez cette distribution, vous devrez activer les dépôts "debian-multimedia" comme expliqué ici :
Depuis la version 0.3.1 du script, le dépôt peut être automatiquement activé à la suite d’une question.
Récupération du script
Le script d’installation peut être récupéré de deux manières différentes.
Via svn en utilisant la commande pour récupérer le code source à jour :
svn co (...)
Sur d’autres sites (9357)
-
Continuous RTSP stream recording with ffmpeg. Can I optimize it to not damage the SD card ?
10 juillet 2019, par MonaI have got an IP camera with RTSP stream. I decided to record the stream using ffmpeg (version 3.2.14-1 deb9u1) on the Odroid-N2 device with Armbian. I have created a .sh script which is launched by Croon every minute. It checks if the ffmpeg recording is active for selected camera and also deletes files older than 7 days :
#!/bin/bash
RecordPathAndFind='/home/mona/CameraRecordings/Camera1/'
SegmentTime=900
MinutesAfterDeleteOldFiles=10080
DaysSecurityLimit=31
tempoutput=$(ps aux | grep ffmpeg | grep $RecordPathAndFind)
if [ ${#tempoutput} -ge 5 ];
then
echo "FFMPEG with record command is already running. Skipping.\n"
else
echo "FFMPEG with record command is not running. Starting now...\n"
FFMPEGSTART=$(su - mona -c "cd /home/mona; /usr/bin/screen -dmS ffmpegcamera1 ffmpeg -rtsp_transport udp -i 'rtsp://admin:password@192.168.1.xxx:554/onvif1' -vcodec copy -c:a aac -map 0 -f segment -segment_time $(echo $SegmentTime) -segment_format mp4 -strftime 1 $(echo $RecordPathAndFind)%Y-%m-%d_%H-%M-%S.mp4")
fi
currenthourminutes=$(date +%M)
if [ "$currenthourminutes" == "00" ]; then
echo "Current Minute is 00. Checking for old files to delete.\n"
FILESDELETECOMMAND=$(find $(echo $RecordPathAndFind) -maxdepth 1 -type f -mmin +$(echo $MinutesAfterDeleteOldFiles) -mtime -$(echo $DaysSecurityLimit) -name '*.mp4' -ls -exec rm {} \;)
else
echo "Current Minute is NOT 00. Skipping.\n"
fiThe script works fine, but I’m afraid of the life of the SD card in this device. I detected that ffmpeg is continuously writing the mp4 file (file size grows all the time). I think it would be better if ffmpeg waited for 1MiB before flushing it to disk.
I tried different ffmpeg settings (adding "blocksize", "flush_packets", "reorder_queue_size" and few others I can’t recall now), unfortunately it didn’t change anything. The mp4 file size was increasing all the time (even by few KBs).
The first question is : Should I be worried about the microSD card life when ffmpeg is all the time writing the file (current environment) ?
The second question is : Are there any other ffmpeg optimization settings which I missed ?
If my fears regarding the SD card life are correct, can you please recommend some other things which I could add to my script (or change in system) in order to increase the life of micro SD cards (or USB sticks) used for recording purposes ? I was thinking about using the ramdisk, and then manually move the files, however this could cause files loss in case of system reboot, hang, or power outage.
-
How to get your Piwik plugin translated in many languages ?
About a year ago we introduced the Piwik Marketplace to make it easy for developers to share their plugins with all Piwik users.
As Piwik is currently available in 54 languages we would love to have as many plugins as possible available in at least a few of those languages.
Currently most plugins on the Marketplace are only available in English and sometimes some other languages. To improve this situation, we offer plugin developers the possibility to use the power of our translators community to get their plugins translated.
Some plugin developers are already using this service and some very popular plugins like BotTracker or CustomOptOut have already been translated in more than 10 languages !
Getting translations for your plugin
As long as you are developing an open source plugin hosted on Github, you may get in touch with us (translations@piwik.org) in order to get your plugin translated by the Piwik translators community.
You will need an account on Transifex.com. If you use Transifex with a social login, please ensure to set a password in your account settings. This will be required for fetching new translations into your plugin repository.
Importing your plugin’s strings in the translation platform
While doing the initial setup for your plugin, we will import your english translation file (
en.json
) in your Github plugin repository and we will configure an auto-update for this file. Source strings on Transifex will automatically synchronise with your plugin repository. When you change any string in youren.json
translation file, the updated English strings will automatically be imported in Transifex.How to fetch your plugins translations into your repository
As soon as we have set up your plugin within our project Piwik on Transifex and there are new translations available, you will be able to update your plugin translations using the Piwik console. You will need a locally installed Piwik with development mode enabled, and your plugin installed. To update the translations go to the Piwik directory on your development box and execute the following command :
./console translations:update -u {YourTransifexUserName} -p {YourTransifexPassword} -P {YourPluginName}
We are looking forward to seeing your Piwik plugins available in more languages ! For more information, check out our Translations plugin developer guide.
Happy hacking,
-
Nginx RTMP Pull to HLS Streaming
5 avril 2023, par Nathaniel AndersonI've followed this guide on setting up RTMP to HLS streaming - https://web.archive.org/web/20221205201139/https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-nginx/


RTMP streaming works just fine but for some reason I can't get HLS to link with the already existing RTMP server. I'm using OBS to stream to RTMP and it's set to be on x264 and as far as I know the default codec for audio is AAC so I'm not sure why it's not picking it up.


Current Nginx.conf


worker_processes auto;
events {
 worker_connections 1024;
}

# RTMP configuration
rtmp {
 server {
 listen 1935; # Listen on standard RTMP port
 chunk_size 4000;

# Define the Application
 application show {
 live on;
 pull rtmp://localhost:1935/stream/test;
 # Turn on HLS
 hls on;
 hls_path /mnt/hls/;
 hls_fragment 3;
 hls_playlist_length 60;
 # disable consuming the stream from nginx as rtmp
 deny play all;
 }

 # RTMP video on demand for mp4 files
 application vod {
 play /mnt/mp4s;
 }

 # RTMP stream using OBS
 application stream {
 live on;
 }

 }
}

http {
 sendfile off;
 tcp_nopush on;
 aio on;
 directio 512;
 default_type application/octet-stream;

 server {
 listen 8080;

 location / {
 # Disable cache
 add_header 'Cache-Control' 'no-cache';

 # CORS setup
 add_header 'Access-Control-Allow-Origin' '*' always;
 add_header 'Access-Control-Expose-Headers' 'Content-Length';

 # allow CORS preflight requests
 if ($request_method = 'OPTIONS') {
 add_header 'Access-Control-Allow-Origin' '*';
 add_header 'Access-Control-Max-Age' 1728000;
 add_header 'Content-Type' 'text/plain charset=UTF-8';
 add_header 'Content-Length' 0;
 return 204;
 }

 types {
 application/dash+xml mpd;
 application/vnd.apple.mpegurl m3u8;
 video/mp2t ts;
 }

 root /mnt/;
 }
 }
}



I've tried changing the rtmp link I have in that config too to both internal and external IP's since it can be reached. I tested watching the rtmp from another computer on the network to confirm it was functional. I wanted to avoid transcoding with ffmpeg since the server doesn't have that kind of power.