
Recherche avancée
Autres articles (91)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Publier sur MédiaSpip
13 juin 2013Puis-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 -
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)
Sur d’autres sites (4340)
-
Revision 0dd591bedd : loop_filter_rows_mt : remove dependency on 'last_height' using this to control r
14 février 2015, par James ZernChanged Paths :
Modify /vp9/common/vp9_thread_common.c
loop_filter_rows_mt : remove dependency on ’last_height’using this to control reallocation would miss a change if the function
were not called for every frame.
fixes potential memory corruption by the subsequent memsetChange-Id : I4c6bb6ab68803104fc824c7e27cc2f9b2cf53e33
-
Flac-in-mp4 draft v0.0.1.
4 octobre 2016, par Ralph Giles -
Does anyone use go-av to parse mp4 audio and then use oto/portaudio to output it ?
27 juillet 2021, par sevenit 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