Recherche avancée

Médias (91)

Autres articles (88)

  • Other interesting software

    13 avril 2011, par

    We 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 : (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (11645)

  • Does anyone use go-av to parse mp4 audio and then use oto/portaudio to output it ?

    27 juillet 2021, par seven

    it is use go-av to get audio

    


    func audio() (<-chan []byte, error) {
    buffer := make(chan []byte, 1024)
    go func() {
     ......
      for inCtx.AvReadFrame(pkt) >= 0 {
            if pkt.StreamIndex() == audioStreamIndex {
                l := pCodecCtx.AvcodecDecodeAudio4((*avcodec.Frame)(unsafe.Pointer(utilFrame)), &gotName, pkt)
                //fmt.Println("AvcodecDecodeAudio4:", l)
                if l < 0 {
                    fmt.Println("codec decode audio4 error")
                    os.Exit(1)
                }
                if gotName > 0 {

                    fram := getFramBytes(utilFrame)
                    fmt.Println("buf add:", index)
                    buffer <- fram

                }
            }
            pkt.AvFreePacket()
        }
        go func() {
            for {
                if len(buffer) <= 0 {
                    fmt.Println("close buf")
                    close(buffer)
                    break
                }
            }
        }()

        (*avcodec.Context)(unsafe.Pointer(pCodecCtxOrig)).AvcodecClose()
    }()
    return buffer, nil
}
func getFramBytes(f *avutil.Frame) []byte {
    data := avutil.Data(f)
    var bf = make([]byte, len(data))
    for i := 0; i < len(data); i++ {

        if data[i] != nil {
            bf = append(bf, *data[i])
        }
    }
    return bf
}



    


    and it is output it

    


    func main() {

    portaudio.Initialize()
    defer portaudio.Terminate()
    out := make([]int32, 8192)
    stream, err := portaudio.OpenDefaultStream(0, 1, 44100, len(out), &out)
    defer stream.Close()
    if err != nil {
        fmt.Println(err)
        return
    }
    err = stream.Start()
    if err != nil {
        fmt.Println(err)
        return
    }
    defer stream.Stop()
    buf, err := audio()
    if err != nil {
        fmt.Println(err)
        return
    }
    //index := 0
    //c, err := oto.NewContext(44100, 2, 2, 8192)
    //if err != nil {
    //  return
    //}
    //defer c.Close()
    //
    //p := c.NewPlayer()
    //defer p.Close()
    for {
        select {
        case frame, ok := <-buf:
            if !ok {
                os.Exit(0)
            }
            //index += 1
            //fmt.Println("$$:", index)
            //if _, err := io.Copy(p, bytes.NewReader(frame)); err != nil {
            //  fmt.Println(err)
            //  return
            //}
            err := binary.Read(bytes.NewReader(frame), binary.BigEndian, out)
            if err != nil {
                fmt.Println("binary.Read:", err)
                os.Exit(0)
            }
            err = stream.Write()
            if err != nil {
                fmt.Println("stream.Write:", err)
                os.Exit(0)
            }
        }
    }

}



    


    ** the result is**

    


    binary.Read : unexpected EOF

    


    if use oto it has no effect

    


    Has anyone used this method, or is there any other way to use go-av to play audio and video ?

    


    Is there a problem in use ? I feel that there is a problem with the data conversion from the audio decoding.

    


    Maybe there is a problem with getFramBytes

    


  • OpenCV3 returning float FRAME_COUNT

    15 mars 2016, par mprat

    I am using OpenCV3 on OSX with Python 2.7 bindings. However, when I try to read the frame count of my video (a .mp4 video), it returns a float - I am expecting an int. Do I need to compile OpenCV3 with some special flags ? Am I missing some codecs ?

    import cv2
    vid = cv2.VideoCapture("vid.mp4")
    print vid.get(cv2.CAP_PROP_FRAME_WIDTH)

    And it returns a float.

    Installation details :

    • ffmpeg : brew install ffmpeg --with-dcadec --with-openh264 --with-openjpeg --with-openssl --with-tools --with-x265  --with-zimg --with-libvidstab --with-libvpx
    • opencv3 : brew install opencv3 --with-ffmpeg --with-contrib
  • Adding text to movie using ffmpeg

    23 août 2014, par microspace

    I use git to track *.ass subtitle files.
    Here is example of *.ass file :

    [Script Info]
    ; Script generated by Aegisub 3.1.2
    ; http://www.aegisub.org/
    Title: Default Aegisub file
    ScriptType: v4.00+

    [V4+ Styles]
    Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour,    BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
    Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
    Style: titr,DejaVu    

    Sans,20,&H007DDBFA,&H000000FF,&H00000000,&HFF000000,0,0,0,0,100,100,0,0,1,2,2,1,10,10,10,1

    [Events]
    Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
    Dialogue: 0,0:00:00.46,0:00:11.22,Default,,0,0,0,,Если это можно было бы
    Dialogue: 0,0:00:03.44,0:00:08.96,titr,,0,0,0,,{\pos(20,240)\fad(600,600)}бывший министр

    After commit I burn subtitles into video :

    ffmpeg -i video.avi -vf "ass=subtitle.ass" out.avi

    My goal is to show commit date for 10 second at the start of movie. This should be done automatically.

    1) It can be easily done with by modifying subtitle.ass itself, but I can’t do it after commit and there are other reasons.

    2) It can be done by ffmpeg from command line : How to use ffmpeg to add a text to avi video ?

    Problem is that in this case text will be shown for the whole lenght of movie.

    3) I can copy *.ass file to temporary directory, insert date, render and delete *.ass file.

    Is there a simpler way ?