2016-12-01 5 views
-1

Как вы можете читать UDP, отправленный из ffmpeg?Как читать FFMPEG с Go?

Я написал сценарий для прослушивания UDP-пакетов и записи их в файл, но файл недействителен и почти в два раза больше.

Это, как я отправить данные:

ffmpeg -i video.mp4 -c:a aac -ar 48000 -ab 196k \ 
-ac 2 -strict -2 -c:v libx264 -vb 500k -r 25 -s 320x240 \ 
-ss 00.000 -f mp4 -movflags frag_keyframe+empty_moov \ udp://127.0.0.1:1936 

Это код в Go. Он должен просто написать видео в новый видео файл:

package main 

import (
    "net" 
    "os" 
) 

func main(){ 
    var buf []byte = make([]byte, 512) 
    addr, _ := net.ResolveUDPAddr("udp", ":1936") 
    conn, _ := net.ListenUDP("udp", addr) 
    defer conn.Close() 

    os.Create("new_video.mp4") 
    f, _ := os.OpenFile("new_video.mp4", syscall.O_WRONLY, 0644) 
    defer f.Close() 


    for { 
    n, _ := conn.Read(buf) 
    f.Write(buf[0:n]) 
    buf = make([]byte, 512) 
    } 
} 

Благодаря

Обновлено

Я изменил формат mp4, но файл по-прежнему недействительным.

+1

Вы говорите FFmpeg сделать файл AVI, но затем сохранить его в качестве mp4? – szatmary

ответ