
Recherche avancée
Médias (1)
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
Autres articles (65)
-
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...) -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 is the first MediaSPIP stable release.
Its official release date is June 21, 2013 and is announced here.
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 (...)
Sur d’autres sites (13068)
-
Why do I catch the "AccessViolationException" exception in av_hwframe_transfer_data () when I run it as a windows service ?
5 décembre 2024, par vakymI write Windows service witch decodig video stream from camera.
I write it on c# with FFMPEG.Autogen wrapper.



My problem is "AccessViolationException" when i run it as service. 
If i run application as Console Application i have no exceptions.



In Stacktrace i see this :



в FFmpeg.AutoGen.ffmpeg+<>c.<.cctor>b__5_572(FFmpeg.AutoGen.AVFrame*, FFmpeg.AutoGen.AVFrame*, Int32)
в FFmpeg.AutoGen.ffmpeg.av_hwframe_transfer_data(FFmpeg.AutoGen.AVFrame*, FFmpeg.AutoGen.AVFrame*,Int32)
в VideoProviderService.VideoSources.RTSPVideoSource.TryDecodeNextFrame(Boolean ByRef)




Code of TryDecodeNextFrame method :



public IntPtr TryDecodeNextFrame(out bool state)
{
 try
 {
 ffmpeg.av_frame_unref(pFrame);
 ffmpeg.av_frame_unref(cpuFrame);
 int error;
 do
 {
 try
 {
 do
 {
 timeout = DateTime.Now.AddSeconds(2);
 error = ffmpeg.av_read_frame(_pFormatContext, pPacket);
 if (error == ffmpeg.AVERROR_EOF)
 {
 state = false;
 return IntPtr.Zero;
 }
 error.ThrowExceptionIfError();
 } while (pPacket->stream_index != _streamIndex);
 ffmpeg.avcodec_send_packet(pCodecContext, pPacket).ThrowExceptionIfError();
 }
 finally
 {
 ffmpeg.av_packet_unref(pPacket);
 }
 error = ffmpeg.avcodec_receive_frame(pCodecContext, pFrame);
 } while (error == ffmpeg.AVERROR(ffmpeg.EAGAIN));
 error.ThrowExceptionIfError();
 ffmpeg.av_hwframe_transfer_data(cpuFrame, pFrame, 0).ThrowExceptionIfError();
 ptrToFrame = (IntPtr)vfc.Convert(*cpuFrame).data[0]; 
 }
 catch
 {
 state = false;
 return IntPtr.Zero;
 }
 state = true;
 return ptrToFrame;
}




What i tried to do :



- 

- I checked arguments of
av_hwframe_transfer_data
. - I changed the user for the service.
- I tried compile as x86 or x64 configuration.









I have no idea how to solve this.
Does anyone have any thoughts ?


- I checked arguments of
-
aacdec_ac : fix signed overflow in ff_aac_ac_update_context()
22 mai, par Lynneaacdec_ac : fix signed overflow in ff_aac_ac_update_context()
The issue is that state->cur[] is 8-bits, but a+b+1 can overflow
before being clipped to 0xF in the following line, causing an incorrect
state to be saved for the next symbol.This solves numerous bitstream desyncs, particularly when coefficients
with magnitude greater than 127 are sent. -
ffmpeg extract segment from video on-the-fly
29 novembre 2022, par brunoaisContext


I want to make a service that hosts mp4 files but also provides video streaming.


The server side is made of 2 "small" edge servers with capacity to cache about 0.1% of the content and one main server with a fraction of the bandwidth of the edge servers but much more robust storage.


Recent status


With the help of the
ffmpeg
manual,

Recently, when a segment is requested by an edge server, I run this command inffmpeg


ffmpeg -i in.mp4 -f hls -hls_list_size 0 -hls_playlist 1 -hls_time 60 -strftime 1 -hls_flags independent_segments+second_level_segment_index+second_level_segment_duration -hls_base_url '/path/to/file/' -hls_segment_filename 'name_%%03d.ts' -c copy -copyts -hls_segment_type fmp4 out.m3u8



Then obtain the requested segment (plus 3 subsequent ones) then delete everything.


Current status


Currently, I tried to get some level of optimization using
-to
:

ffmpeg -i in.mp4 -to -f hls -hls_list_size 0 -hls_playlist 1 -hls_time 60 -strftime 1 -hls_flags independent_segments+second_level_segment_index+second_level_segment_duration -hls_base_url '/path/to/file/' -hls_segment_filename 'name_%%03d.ts' -c copy -copyts -hls_segment_type fmp4 out.m3u8



Then sending the requested segments to the edge that requested them, then delete the result.
Do note that
/path/to/file/
is a tmpfs with quite modest capacity (files can't stay there for too long).

The current setback


The main issue I get with the current process is that it takes a long time to obtain the last segments (2-4s).
That creates a bottleneck in how long segments take to be served. I can increase the buffer from 3 videos to 5 (or even more) but that doesn't solve the actual problem and, instead, will bring more strain on other areas.


Cutting is not reliable


There doesn't seem to exist an option to select what segments to generate using ffmpeg.


Using cutting argument for start time (
-ss
) has shown to usually work but regularely causes the first keyframe used to be wrong. However, I believe I have all segment files in variable length and cut at the keyframe of the original file.

Help needed


How to extract an arbitrary segment of an mp4, described in the m3u8 file (which was done in a previous extraction) ?


I have full control over ffmpeg and I can automate edits to the m3u8 file after generating them, as required. However, I need to understand and see how can this be solved.