
Recherche avancée
Autres articles (97)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela. -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 mars 2010, parLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)
Sur d’autres sites (8988)
-
Low latency video streaming on android
17 mai 2021, par Louis BlennerI'd like to be able to stream the video from my webcam to an Android app with a latency below 500ms, on my local network.


To capture and send the video over the network, I use ffmpeg.


ffmpeg -f v4l2 -i /dev/video0 -preset ultrafast -tune zerolatency -vcodec libx264 -an -vf format=yuv420p -f mpegts udp://192.168.1.155:5000



This command takes the webcam as an input, convert it and send it to a device using the mpegts protocol.


I am able to read the video on another PC with a latency below 500 ms, using commands like


gst-launch-1.0 -v udpsrc port=5000 ! video/mpegts ! tsdemux ! h264parse ! avdec_h264 ! fpsdisplaysink sync=false



or


mpv udp://0.0.0.0:5000 --no-cache --untimed --no-demuxer-thread --video-sync=audio --vd-lavc-threads=1 



So it is possible to have this range of latency.

I'd like to have the same thing on Android.

Here are my tries to do that.


Exoplayer


After looking at the different players available on Android studio, it seems like Exoplayer is the go-to choice.

I tried different options indicated in the live-streaming documentation, but I always end up with a stream taking seconds to start and with a latency of seconds.

I tried to add a Button to seek to the default position of the windows, but it results in a loading of several seconds.

DefaultExtractorsFactory extractorsFactory =
 new DefaultExtractorsFactory()
 .setTsExtractorFlags(DefaultTsPayloadReaderFactory.FLAG_IGNORE_AAC_STREAM);

 player = new SimpleExoPlayer.Builder(this)
 .setMediaSourceFactory(
 new DefaultMediaSourceFactory(this, extractorsFactory))
 .setLoadControl(new DefaultLoadControl.Builder()
 .setBufferDurationsMs(DefaultLoadControl.DEFAULT_MIN_BUFFER_MS, DefaultLoadControl.DEFAULT_MAX_BUFFER_MS, 200, 200)
 .build())
 .build();
 MyPlayerView playerView = findViewById(R.id.player_view);
 // Bind the player to the view.
 playerView.setPlayer(player);
 // Build the media item.
 MediaItem mediaItem = new MediaItem.Builder()
 .setUri(Uri.parse("udp://0.0.0.0:5000"))
 .setLiveMaxOffsetMs(500)
 .setLiveTargetOffsetMs(0)
 .setLiveMinOffsetMs(0)
 .build();
 // Set the media item to be played.
 player.setMediaItem(mediaItem);
 // Prepare the player.
 player.setPlayWhenReady(true);
 player.prepare();
 //player.seekToDefaultPosition();



This issue is about the same issue and the conclusion was that Exoplayer was not fit for this use case.




I'll be honest, ultra low-latency like this isn't ExoPlayer's main use-case




Vlc


Another try was to use the Vlc library.

But I was unable to have the same low latency stream as with the two previous example with Vlc.

I tried changing the preferences of Vlc to stream as fast as possible.

Input/Codecs -> x264 preset: ultrafast - zerolatency
Input/Codecs -> Access Module: UDP input
Input/Codecs -> Clock Jitter: 500
Audio: disable audio



I also tried reducing the different buffers.

However, I still have a latency of more than 1 seconds with that.

Gstreamer


Another try was to create a react-native project to use the different players available here.

One player that seemed promising was react-native-gstreamer because it uses gstreamer which is able to stream with low latency (gst-launch command).

But the library is now outdated.

Question


There were other tries, but none were successful.

Is there a problem with one of my approaches ?

And if not, Is there a player on Android (that I missed) which is able to achieve low latency stream like gstream or mpv on linux ?

-
GoPro (MP4) video timestamp sync with precision of milliseconds
3 février 2021, par Raphael OttoniI need your help with a data sync problem... I m currently trying to sync my GoPro video with real world time (a.k.a my notebook). I manage to sync date and time of my notebook and my GoPro 3+ black perfectly. The problem is that when the GoPro save the files in disk it round up the milliseconds on the creation_time (the milliseconds is always 000000) . Thus, turning the perfect sync impossible. In attachment is a picture of the meta information (extracted by ffprobe) of the MP4 video.



My question is : What I have to do, so the GoPro actually save the creation_time with precision of milliseconds ?



Another small question : Looking at the attachment figure, we see the "timecode" which is a time synchronization data in the format of hours:minuts:seconds:frame. I was thinking that I could use the "frame" value to calculate the missing milliseconds value. If we take this attachment, as a example, we can see that the frame value is "36". Meaning that the millisecond that it started to record was the one associated with the 36th frame of the FPS (in this video : 60fps) value : Some thing like 1000/60 * 36 which is 600 milliseconds, thus the actual creation_time of this video would be : 2017-07-19T18:10:34.600



Is this logic right ? it didn't work ! I don't know what else to do.



P.S : I need this kind of time precision because I will sync the video frames with a external sensor data that is recorded at 11hz.



Please Help






update



I forgot to mention, even if you check the original raw file information, inside the GoPro SSD card, using "stats" to read the creation time (see attachment) it still has the same timestamp without milliseconds.





-
FFMPEG xstack not recognizing inputs
12 août 2020, par JoshI'm trying to arrange three input videos into a single output video using ffmpeg's xstack. I currently have the operations working with a vstack followed by an hstack, but would like to combine them into an xstack for performance.


I've tried copying the syntax from multiple locations such as :




Vertically or horizontally stack (mosaic) several videos using ffmpeg ?


My command is as follows :




C :\ffmpeg\bin\ffmpeg.exe -i states_full.mp4 -i title.mp4 -i graphs.mp4" -filter_complex "[0:v] setpts=PTS-STARTPTS, scale=qvga [a0] ; [1:v] setpts=PTS-STARTPTS, scale=qvga [a1] ; [2:v] setpts=PTS-STARTPTS, scale=qvga [a2] ; [a0][a1][a2]xstack=inputs=3:layout=0_0|w0_0|w0_h0[out] " -map "[out]" -c:v libx264 -t '30' -f matroska output.mp4




The command always errors out at the same spot, with the same error message :




'w0_0' is not recognized as an internal or external command,
operable program or batch file.




Some odd behavior is that even when I change the layout section to :


layout=w0_0|0_0|w0_h0



The error message is still on the middle '0_0' meaning it may be an error in formatting.


This issue is very strange, as the vstack and hstack still work, only the xstack fails.