
Recherche avancée
Médias (2)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (59)
-
L’espace de configuration de MediaSPIP
29 novembre 2010, parL’espace de configuration de MediaSPIP est réservé aux administrateurs. Un lien de menu "administrer" est généralement affiché en haut de la page [1].
Il permet de configurer finement votre site.
La navigation de cet espace de configuration est divisé en trois parties : la configuration générale du site qui permet notamment de modifier : les informations principales concernant le site (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (10735)
-
Python buffered IO ending early streaming with multiple pipes
5 octobre 2022, par MalibuI'm trying to make a continuous livestream of videos downloaded via yt-dlp. I need to port this (working) bash command into Python.


(
 youtube-dl -v --buffer-size 16k https://youtube.com/watch?v=QiInzFHIDp4 -o - | ffmpeg -i - -f mpegts -c copy - ;
 youtube-dl -v --buffer-size 16k https://youtube.com/watch?v=QiInzFHIDp4 -o - | ffmpeg -i - -f mpegts -c copy - ;
) | ffmpeg -re -i - -c:v libx264 -f flv rtmp://127.0.0.1/live/H1P_x5WPF



My Python attempt is cutting off the last 2 seconds of each video. My suspicion is that although the first pipe, yt-dlp, has an empty stdout, there is still data travelling between the second and third pipe. I haven't been able to figure out a way to properly handle the data between those two pipes at the end of the video.


from subprocess import Popen, PIPE, DEVNULL

COPY_BUFSIZE = 65424

playlist = [
 {
 # 15 second video
 "url": "https://youtube.com/watch?v=QiInzFHIDp4"
 },
 {
 # 15 second video
 "url": "https://youtube.com/watch?v=QiInzFHIDp4"
 },
 {
 # 15 second video
 "url": "https://youtube.com/watch?v=QiInzFHIDp4"
 },
]

if __name__ == "__main__":
 stream_cmd = [
 "ffmpeg", "-loglevel", "error",
 "-hide_banner", "-re", "-i", "-",
 "-c:v", "libx264",
 "-f", "flv",
 "-b:v", "3000k", "-minrate", "3000k",
 "-maxrate", "3000k", "-bufsize", "3000k",
 "-r", "25", "-pix_fmt", "yuv420p",
 "rtmp://127.0.0.1/live/H1P_x5WPF"
 ]
 print(f'Stream command:\n"{" ".join(stream_cmd)}"')

 encoder_cmd = [
 "ffmpeg", "-re", "-i", "-", "-f", "mpegts",
 "-c", "copy", "-"
 ]
 print(f'Encoder command:\n"{" ".join(encoder_cmd)}"')

 stream_p = Popen(stream_cmd, stdin=PIPE, stderr=DEVNULL)

 for video in playlist:
 yt_dlp_cmd = [
 "yt-dlp", "-q",
 video["url"],
 "-o", "-"
 ]

 print("Now playing: " + video["url"])

 with Popen(yt_dlp_cmd, stdout=PIPE) as yt_dlp_p:
 with Popen(encoder_cmd, stdin=PIPE, stdout=PIPE, stderr=DEVNULL) as encoder_p:
 while True:
 yt_dlp_buf = yt_dlp_p.stdout.read(COPY_BUFSIZE)
 print("READ: yt_dlp")
 if not yt_dlp_buf:
 print("yt-dlp buffer empty")
 # Handle any data in 2nd/3rd pipes before breaking?
 break

 written = encoder_p.stdin.write(yt_dlp_buf)
 print("WRITE: encoder. Bytes: " + str(written))

 encoder_buf = encoder_p.stdout.read(COPY_BUFSIZE)
 # if not encoder_buf:
 # print("encoder_buf empty")
 # break
 print("READ: encoder")

 stream_bytes_written = stream_p.stdin.write(encoder_buf)
 print("WRITE: stream, Bytes: " + str(stream_bytes_written))



Running Python 3.6.9 on MacOS.


-
Youtube processing stuck at 95%
10 avril 2019, par lcssanchesWell I’m trying to upload a video recorded with ffmpeg, but Youtube fail at processing it.
Here’s the video information :
Here’s the link https://www.youtube.com/watch?v=7XlxLh0usnY. -
C# streaming drone video
12 mai 2017, par jasonmacintoshI am currently a student and I have a project which require using the drone and the livestream from its camera
I managed to find a control program http://www.winardrone.com which can control my ar drone 2.0 , but the problem is that the program doesn’t support my drone’s camera live stream method(TCP)due to the fact that the program is more compatible to the ar drone 1.0(older version drone) which uses(UDP)
so I have encountered a problem of putting the video stream into my program
,there are a really simple solution of using ffmpeg player with cmd command "ffplay tcp ://192.168.1.1:5555", but it does mean that my program have to run in multiple windows and I won’t be able to save my frames with my program to do analyzationso could anyone tell me how to Stream my TCP video in my visual studio C# program and capture frames at the same time ?
just like the program in this video
https://www.youtube.com/watch?v=4V5B-DPWdOQI wish to get the video image in a program instead of opening a new window
And sorry for my bad grammar, thanks for your reply