Tweet vidĂ©o: l’aquarium Matouba de retour sur Twitter
J’avais créé une application twitter, qui twittait les paramètres de l’aquarium, notamment la tempĂ©rature des bacs et de la fishroom. Ensuite, j’avais modifiĂ© ce bot pour envoyer de manière automatisĂ©e une photo sur l’instagram hackquarium.
Entre-temps, Instagram a modifiĂ© ses conditions d’utilisation et interdit l’envoi automatisĂ© d’image sur son rĂ©seau. J’ai donc abandonnĂ© ce bot et rĂ©utilisĂ© son raspberry Pi et sa camĂ©ra pour d’autres projets …
Avec l’arrivĂ©e des bĂ©bĂ©s killi je vais devoir rajouter quelques bacs. J’en profite pour rĂ©organiser les aquarium et leur crĂ©er un rĂ©seau dĂ©diĂ©1
Bref, l’arrivĂ©e de ces nouveaux bacs m’a donnĂ© de nouvelles idĂ©es de monitoring de la fishroom via twitter (ou autre ;-)) et donc j’ai dĂ©cidĂ© de rĂ©amorcer l’application twitter rlieh.
Automated video tweets by #RLIEH
Matouba fishtank – 3 june 2019 – Automated video tweet by #RLIEH #smartaquarium #aquariumhobby #fishtank #raspberrypi #raspivid #hack #hackquarium pic.twitter.com/CEC2PCELcj
— hackquarium (@hackquarium) June 3, 2019
Dans sa mouture actuelle, l’application twitte 18 secondes de vidĂ©o, avec dans le texte du tweet la date du jour et quelques mots clĂ© pour le rĂ©fĂ©rencement.
Raspivid pour un media video Twitter
La vidéo est capturée via raspivid puis encodée en mp4 avec MP4Box avant envoi vers Twitter :
raspivid --profile main --framerate 30 --bitrate 5000000 -t 15000 -w 1280 -h 720 -fps 30 -hf -vf -o video.h264 && MP4Box -add video.h264 video.mp4
Capture et timecode avec Picamera
J’ai testĂ© Picamera, avec l’idĂ©e d’utiliser l’incrustation de texte pour afficher la date et l’heure de la capture. Après encodage en mp4 via Mp4box, le rĂ©sultat Ă©tait correct, mais très dĂ©gradĂ© lors de l’affichage sur Twitter2.
Ci-après mon script pour tester Picamera en comparaison de raspivid. Je suppose que c’est la diffĂ©rence de bitrate3 entre la commande raspivid et le script python Picamera qui explique la diffĂ©rence de qualitĂ© de la vidĂ©o finale traitĂ©e par Twitter ?
Script Python Picamera avec incrustation de date
#!/usr/bin/env python
import picamera
import datetime as dt
video_file = "video.h264"
video_duration = 10
time_format = 'Matouba Fishtank %Y-%m-%d %H:%M:%S'
text_foreground = "white"
text_background = "black"
camera_resolution = (1280, 720)
camera_framerate = 30
camera_led = False
camera_vflip = True
camera_hflip = True
with picamera.PiCamera() as camera:
camera.resolution = camera_resolution
camera.framerate = camera_framerate
camera.led = camera_led
camera.vflip = camera_vflip
camera.annotate_foreground = picamera.Color(text_foreground)
camera.annotate_background = picamera.Color(text_background)
camera.annotate_text = dt.datetime.now().strftime(time_format)
camera.start_recording(video_file)
start = dt.datetime.now()
while (dt.datetime.now() - start).seconds < video_duration:
camera.annotate_text = dt.datetime.now().strftime(time_format)
camera.wait_recording(0.2)
camera.stop_recording()
Envoyer une vidéo sur Twitter avec Python
Pour l’envoi de la vidĂ©o vers Twitter, j’utilise la librairie python twython
video = open('/path/to/file/video.mp4', 'rb') response = twitter.upload_video(media=video, media_type='video/mp4') twitter.update_status(status='Automated Tweet by #RLIEH', media_ids=[response['media_id']])
Docker rlieh-twitter-video
Ces outils sont installés sur un raspberry Pi dédié.
Pour faciliter le dĂ©ploiement et les mises Ă jour, j’ai packagĂ© l’application rlieh-twitter-video dans un docker4.
Streamer la Picam sur Linux avec netcat
Pour positionner la camĂ©ra, j’utilise netcat afin d’afficher la camĂ©ra sur un poste distant
- Je crĂ©e un rĂ©seau dĂ©diĂ© pour les aquariums plus par commoditĂ© que nĂ©cessitĂ© ou sĂ©curitĂ©. Actuellement, les aquariums, le contrĂ´leur #RLIEH et ses satellites sont tous connectĂ©s sur le rĂ©seau de la maison, et ça commence Ă faire encombrĂ© …
- à moins que ce une impression due à mon débit très limité ?
- Quelques mentions du bitrate dans la doc Picamera, mais en fait cela ne semble pas totalement implémenté
- Docker est un logiciel libre permettant d’installer et d’exĂ©cuter n’importe quelle application sur un système hĂ´te, dans un conteneur cloisonnĂ©.
1 réponse
[…] la camĂ©ra utilisĂ©e pour l’enregistrement quotidien d’une vidĂ©o de l’aquarium Matouba et sa diffusion sur Twitter, est fixĂ©e sur un bras articulĂ©e sur un trĂ©pied. Cette installation n’est pas très stable […]