Recherche avancée

Médias (1)

Mot : - Tags -/belgique

Autres articles (43)

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

Sur d’autres sites (7714)

  • I cannot find any way to convert multiple jpg or png to gif in vb.net using ffmpeg

    4 juillet 2017, par Silvia Fonseca

    Is there anyway i can get multiples png or jpg images to gif using ffmpeg in vb.net
    I have start a new application to capture certain frames from a video but now i want to get all the frames extracted in gif image using ffmpeg.
    This is my code so far :
    I have in fact all ready try like this but not succeed
    I have made some changes and i get the gif file but in empty state
    This is my code so far

    Imports System.Diagnostics
    Imports System.ComponentModel
    Imports System
    Imports System.IO
    Public Class Form1
    Dim video = ""
    Dim startInfo As New ProcessStartInfo("ffmpeg.exe")
    Dim frame As Long 'individual frames
    Dim tempdir As String = "C:\avitogifconverter\" ' images temp directory
    Dim DestPath As String = "C:\avitogifconverter\"
    Public Declare Auto Function FindWindowNullClassName Lib "user32.dll" Alias "FindWindow" (ByVal lpClassname As Integer, ByVal lpWindownName As String) As Integer
    Dim Counter As Integer = 0

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       My.Computer.FileSystem.CreateDirectory(tempdir)
       TextBox1.Text = "exp:-->video.avi or webm or flv"
       TextBox1.Clear()



    End Sub


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim p As Process = Process.Start("cmd", "/k ffmpeg.exe -i " + TextBox1.Text + " -filter:v fps=1/15 C:\avitogifconverter\out%02d.jpg")
       p.WaitForExit()

       If p.HasExited Then
           MsgBox("The Extraction Are Finish...")
       End If

    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Label3.Text = "cmd" + "/k ffmpeg.exe -i " + TextBox1.Text + " -filter:v fps=1/15 C:\avi to gif converter\out%02d.jpg"
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click


       If (OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK) Then
           'TextBox1.Text = OpenFileDialog1.FileName
           TextBox1.Text = System.IO.Path.GetFileName(OpenFileDialog1.FileName)
       End If
       If TextBox1.Text = Nothing Then
           Return
       End If
       If TextBox1.Text <> Nothing Then
           'My.Computer.FileSystem.CopyFile(TextBox1.Text, DestPath)
       End If

    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
       Dim args As String 'declare args
       args = " -framerate 1/5 -i C:\avitogifconverter\out%02d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p C:\avitogifconverter\out.gif "
       Dim proc As New Process
       Dim proci As New ProcessStartInfo
       proci.FileName = My.Application.Info.DirectoryPath & "\ffmpeg.exe"
       proci.Arguments = args
       proci.WindowStyle = ProcessWindowStyle.Hidden
       proci.CreateNoWindow = True
       proci.UseShellExecute = False
       proc.StartInfo = proci
       proc.Start()
       Do Until proc.HasExited = True
           Me.Text = "Saving"
       Loop
       Me.Text = "your video done"

       MsgBox("Done")

       'IO.Directory.Delete(tempdir, True)
    End Sub
    End Class
  • arm : vp9itxfm : Skip empty slices in the first pass of idct_idct 16x16 and 32x32

    9 janvier 2017, par Martin Storsjö
    arm : vp9itxfm : Skip empty slices in the first pass of idct_idct 16x16 and 32x32
    

    This work is sponsored by, and copyright, Google.

    Previously all subpartitions except the eob=1 (DC) case ran with
    the same runtime :

    Cortex A7 A8 A9 A53
    vp9_inv_dct_dct_16x16_sub16_add_neon : 3188.1 2435.4 2499.0 1969.0
    vp9_inv_dct_dct_32x32_sub32_add_neon : 18531.7 16582.3 14207.6 12000.3

    By skipping individual 4x16 or 4x32 pixel slices in the first pass,
    we reduce the runtime of these functions like this :

    vp9_inv_dct_dct_16x16_sub1_add_neon : 274.6 189.5 211.7 235.8
    vp9_inv_dct_dct_16x16_sub2_add_neon : 2064.0 1534.8 1719.4 1248.7
    vp9_inv_dct_dct_16x16_sub4_add_neon : 2135.0 1477.2 1736.3 1249.5
    vp9_inv_dct_dct_16x16_sub8_add_neon : 2446.7 1828.7 1993.6 1494.7
    vp9_inv_dct_dct_16x16_sub12_add_neon : 2832.4 2118.3 2266.5 1735.1
    vp9_inv_dct_dct_16x16_sub16_add_neon : 3211.7 2475.3 2523.5 1983.1
    vp9_inv_dct_dct_32x32_sub1_add_neon : 756.2 456.7 862.0 553.9
    vp9_inv_dct_dct_32x32_sub2_add_neon : 10682.2 8190.4 8539.2 6762.5
    vp9_inv_dct_dct_32x32_sub4_add_neon : 10813.5 8014.9 8518.3 6762.8
    vp9_inv_dct_dct_32x32_sub8_add_neon : 11859.6 9313.0 9347.4 7514.5
    vp9_inv_dct_dct_32x32_sub12_add_neon : 12946.6 10752.4 10192.2 8280.2
    vp9_inv_dct_dct_32x32_sub16_add_neon : 14074.6 11946.5 11001.4 9008.6
    vp9_inv_dct_dct_32x32_sub20_add_neon : 15269.9 13662.7 11816.1 9762.6
    vp9_inv_dct_dct_32x32_sub24_add_neon : 16327.9 14940.1 12626.7 10516.0
    vp9_inv_dct_dct_32x32_sub28_add_neon : 17462.7 15776.1 13446.2 11264.7
    vp9_inv_dct_dct_32x32_sub32_add_neon : 18575.5 17157.0 14249.3 12015.1

    I.e. in general a very minor overhead for the full subpartition case due
    to the additional loads and cmps, but a significant speedup for the cases
    when we only need to process a small part of the actual input data.

    In common VP9 content in a few inspected clips, 70-90% of the non-dc-only
    16x16 and 32x32 IDCTs only have nonzero coefficients in the upper left
    8x8 or 16x16 subpartitions respectively.

    This is cherrypicked from libav commit
    9c8bc74c2b40537b0997f646c87c008042d788c2.

    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavcodec/arm/vp9itxfm_neon.S
    • [DH] tests/checkasm/vp9dsp.c
  • ffmpeg API : handle frame loss in hevc encoding

    8 janvier 2024, par Mario

    Everything works fine until the introduction of frame->pts increment due to frame loss.

    &#xA;

    Below is the regular progression without frame->pts increments :

    &#xA;

    &#xA;

    frame->pts=8 pkt->pts=512 pkt->dts=-512 pkt->flags=1
    &#xA;frame->pts=9 pkt->pts=2560 pkt->dts=0 pkt->flags=0
    &#xA;frame->pts=10 pkt->pts=1536 pkt->dts=512 pkt->flags=0
    &#xA;frame->pts=11 pkt->pts=1024 pkt->dts=1024 pkt->flags=0
    &#xA;frame->pts=12 pkt->pts=2048 pkt->dts=1536 pkt->flags=0
    &#xA;frame->pts=13 pkt->pts=4608 pkt->dts=2048 pkt->flags=0
    &#xA;frame->pts=14 pkt->pts=3584 pkt->dts=2560 pkt->flags=0
    &#xA;frame->pts=15 pkt->pts=3072 pkt->dts=3072 pkt->flags=0
    &#xA;frame->pts=16 pkt->pts=4096 pkt->dts=3584 pkt->flags=0
    &#xA;frame->pts=17 pkt->pts=6656 pkt->dts=4096 pkt->flags=0
    &#xA;frame->pts=18 pkt->pts=5632 pkt->dts=4608 pkt->flags=0

    &#xA;

    &#xA;

    When I introduce the frame->pts increment it happens :

    &#xA;

    &#xA;

    frame->pts=15 pkt->pts=512 pkt->dts=-512 pkt->flags=1
    &#xA;frame->pts=17 pkt->pts=4608 pkt->dts=2048 pkt->flags=0
    &#xA;frame->pts=19 pkt->pts=2560 pkt->dts=1536 pkt->flags=0
    &#xA;[mp4 @ 0x7eff842222c0] Application provided invalid, non monotonically increasing dts to muxer in stream 0 : 2048 >= 1536

    &#xA;

    &#xA;

    So I wrote the following code as a "quick" solution (between av_packet_rescale_ts() and av_interleaved_write_frame()) :

    &#xA;

       av_packet_rescale_ts(pkt, c->time_base, st->time_base);  &#xA;   ...&#xA;   if (pkt->dts&lt;=previous_dts)  &#xA;     {  &#xA;      if (pkt->pts&lt;=previous_pts)  &#xA;        {  &#xA;         pkt->pts=previous_dts&#x2B;1&#x2B;pkt->pts-pkt->dts;  &#xA;        }  &#xA;       pkt->dts=previous_dts&#x2B;1;  &#xA;     }  &#xA;   previous_dts=pkt->dts;  &#xA;   previous_pts=pkt->pts;  &#xA;   ...&#xA;   ret = av_interleaved_write_frame(fmt_ctx, pkt);  &#xA;

    &#xA;

    Now I no longer have the error, but the values are :

    &#xA;

    &#xA;

    frame->pts=15 pkt->pts=512 pkt->dts=-512 pkt->flags=1
    &#xA;changed frame->pts=15 pkt->pts=512 pkt->dts=1 pkt->flags=1
    &#xA;frame->pts=17 pkt->pts=4608 pkt->dts=2048 pkt->flags=0
    &#xA;frame->pts=19 pkt->pts=2560 pkt->dts=1536 pkt->flags=0
    &#xA;changed frame->pts=19 pkt->pts=3073 pkt->dts=2049 pkt->flags=0
    &#xA;frame->pts=21 pkt->pts=1536 pkt->dts=1536 pkt->flags=0
    &#xA;changed frame->pts=21 pkt->pts=2050 pkt->dts=2050 pkt->flags=0
    &#xA;frame->pts=23 pkt->pts=4096 pkt->dts=3584 pkt->flags=0
    &#xA;frame->pts=25 pkt->pts=8704 pkt->dts=6144 pkt->flags=0
    &#xA;frame->pts=27 pkt->pts=6656 pkt->dts=5632 pkt->flags=0
    &#xA;changed frame->pts=27 pkt->pts=7169 pkt->dts=6145 pkt->flags=0
    &#xA;frame->pts=29 pkt->pts=5632 pkt->dts=5632 pkt->flags=0
    &#xA;changed frame->pts=29 pkt->pts=6146 pkt->dts=6146 pkt->flags=0
    &#xA;frame->pts=31 pkt->pts=7680 pkt->dts=7168 pkt->flags=0
    &#xA;frame->pts=33 pkt->pts=12800 pkt->dts=10240 pkt->flags=0
    &#xA;frame->pts=35 pkt->pts=10752 pkt->dts=9728 pkt->flags=0
    &#xA;changed frame->pts=35 pkt->pts=11265 pkt->dts=10241 pkt->flags=0
    &#xA;frame->pts=37 pkt->pts=9728 pkt->dts=9728 pkt->flags=0
    &#xA;changed frame->pts=37 pkt->pts=10242 pkt->dts=10242 pkt->flags=0

    &#xA;

    &#xA;

    What is the correct way to handle frame loss scenario ?&#xA;Is there a way to inform the encoder about frame loss ?

    &#xA;

    The encoder is "hevc_qsv" and the output format is mov (.mp4).

    &#xA;