
Recherche avancée
Autres articles (22)
-
Librairies et logiciels spécifiques aux médias
10 décembre 2010, parPour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...) -
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...) -
Gestion générale des documents
13 mai 2011, parMédiaSPIP ne modifie jamais le document original mis en ligne.
Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)
Sur d’autres sites (6112)
-
Android - Choosing between MediaRecorder, MediaCodec and Ffmpeg
26 novembre 2018, par Rohan StarkI am working on a video recording and sharing application for Android. The specifications of the app are as follows :-
- Recording a 10 second (maximum) video from inside the app (not using the device’s camera app)
- No further editing on the video
- Storing the video in a Firebase Cloud Storage (GCS) bucket
- Downloading and playing of the said video by other users
From the research, I did on SO and others sources for this, I have found the following (please correct me if I am wrong) :-
The three options and their respective features are :-
1.Ffmpeg
- Capable of achieving the above goal and has extensive answers and explanations on sites like SO, however
- Increases the APK size by 20-30mb (large library)
- Runs the risk of not working properly on certain 64-bit devices
2.MediaRecorder
- Reliable and supported by most devices
- Will store files in .mp4 format (unless converted to h264)
- Easier for playback (no decoding needed)
- Adds the mp4 and 3gp headers
- Increases latency according to this question
3.MediaCodec
- Low level
- Will require MediaCodec, MediaMuxer, and MediaExtractor
- Output in h264 ( without using MediaMuxer for playback )
- Good for video manipulations (though, not required in my use case)
- Not supported by pre 4.3 (API 18) devices
- More difficult to implement and code (my opinion - please correct me if I am wrong)
- Unavailability of extensive information, tutorials, answers or samples (Bigflake.com being the only exception)
After spending days on this, I still can’t figure out which approach suits my particular use case. Please elaborate on what I should do for my application. If there’s a completely different approach, then I am open to that as well.
My biggest criteria are that the video encoding process be as efficient as possible and the video to be stored in the cloud should have the lowest possible space usage without compromising on the video quality.
Also, I’d be grateful if you could suggest the appropriate format for saving and distributing the video in Firebase Storage, and point me to tutorials or samples of your suggested approach.
Thank you in advance ! And sorry for the long read.
-
created .webm from .mp4 with ffmpeg is async due to start_time>0 in video stream
25 février 2015, par chuckicesince a couple of days i’m trying to figure out a solution for syncronization issue, using ffmpeg as a transcoding application.
i create a 1-fps .webm-preview of my .mp4-Video with the following ffmpeg command line :
ffmpeg -i input.mp4 -vcodec libvpx -b:v 500k -ss 0 -qmin 10 -qmax 42 -maxrate 500k -bufsize 1000k -vf scale=768:576 -an -r 1 -g 0 -y output.webm
after my .webm-format is transcoded, i realize that f.e. position 00:00:10.000 in both videos does not have the same image.
after reading parts of the ffmpeg documentation, i found the parameter -vsync
-vsync parameter
0, passthrough : Each frame is passed with its timestamp from the demuxer to the muxer.
1, cfr : Frames will be duplicated and dropped to achieve exactly the requested constant frame rate.
2, vfr : Frames are passed through with their timestamp or dropped so as to prevent 2 frames from having the same timestamp.
drop : As passthrough but destroys all timestamps, making the muxer generate fresh timestamps based on frame-rate.
-1, auto : Chooses between 1 and 2 depending on muxer capabilities. This is the default method.
As i’m kind of new to ffmpeg, i’d like to ask for help to spare my troubles.
Anybody ?
Update : Digging deeper i found out that my mp4-Source had an offset in the beginning.
So i should solve this problem first.
Documenting my work, i found out, that the video-Stream in my .mp4-Format has the following offset, defined as start_time.
ffprobe -v quiet -show_streams -print_format json -i archiv.mp4
{
"streams": [
{
"index": 0,
"codec_name": "h264",
"codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
"profile": "High",
"codec_type": "video",
"codec_time_base": "1/100",
"codec_tag_string": "avc1",
[..]
"start_time": "1.080000",
[..]
]Is there a way, resetting this start_time of the stream by ffmpeg ? Right now, im using the following command-line :
ffmpeg -i input.ts -vf yadif -c:v libx264 -crf 24 -c:a libmp3lame -y -strict -2 -b:v 4000k -copyts -start_at_zero archiv.mp4
-
ffmpeg concat with filter eats up all memory
12 juin 2023, par Bardan PokhrelI have been trying to produce a indefinite loop of a list of videos in a folder. For testing purpose, I am using only 2 videos as input. I then concat them to produce an output of 1280X720 output.


However, when I do that, I notice that it eats up all my memory of the server which has 16GB of memory and swp memory of 4GB.


Before I start encode process, swp memory is 2.95 GB and memory is about 1 - 1.5GB.


The encoding works for approximately 7 mins 37 seconds everytime I run it. Then the memory and swp memory is all filled and ffmpeg exits with no response.


My ffmpeg command is


`ffmpeg -hide_banner -y -stats -fflags +genpts+discardcorrupt -nostdin -re -i /home/bardan/content/BBB.mp4 -re -i /home/bardan/content/TOS.mp4 -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=25,format=yuv420p[v0];[1:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=25,format=yuv420p[v1];[0:a]aformat=sample_rates=44100:channel_layouts=stereo[a0];[1:a]aformat=sample_rates=44100:channel_layouts=stereo[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1[vconcat][aconcat];[vconcat]split=2[vloop0][vloop1];[aconcat]asplit=2[aloop0][aloop1];[vloop0][aloop0][vloop1][aloop1]concat=n=2:v=1:a=1[vlooped][alooped]" -map "[vlooped]" -map "[alooped]" -c:v libx264 -b:v 2500k -c:a aac -movflags +faststart -f flv -flvflags no_duration_filesize -shortest -max_delay 0.5 -vsync 0 rtmp://{rtmp_url}:1935/livehd/livestreamloop_720p2500kbs`



I have been struggling to find a solution to this for the past few days. Been searching the web for solutions and I even tried getting solution using chatgpt. The above command is the last suggestion made by chatgpt. I could not even find any answer to my problem on stackoverflow.


However, to no avail, I am bound to seek suggestions from my friends on stackoverflow to help me overcome the issue.


BTW, I have been using ffmpeg for simple encoding. But concat and filter together is something I haven't understood fully yet.


Can anyone help ?