V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linbingqinag
V2EX  ›  程序员

視頻處理,

  •  
  •   linbingqinag · 2019-08-08 19:59:42 +08:00 · 1249 次点击
    这是一个创建于 1716 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如題, 想讀取一個視頻文件, 但是發現讀取出來不能播放了, 有同學可以看看什麼問題嗎? 以前沒有做過視頻處理

    
    
    package main
    
    import (
    	"bufio"
    	"os"
    )
    
    func checkError(err error) {
    	if err != nil {
    		panic(err)
    	}
    }
    func main() {
    	path := "/e22ca3cbcbb30eb2b39461602e8ff2ac.mp4"
    	outfile, err := os.Create("test.mp4")
    	checkError(err)
    	defer outfile.Close()
    
    	inFile, err := os.Open(path)
    	checkError(err)
    	defer inFile.Close()
    
    	scanner := bufio.NewScanner(inFile)
    	buf := make([]byte, 0, 1024*1024)
    	scanner.Buffer(buf, 10*1024*1024)
    
    	writer := bufio.NewWriter(outfile)
    
    	for scanner.Scan() {
    		print(scanner.Bytes())
    		_, res := writer.Write(scanner.Bytes())
    		checkError(res)
    	}
    }
    
    
    
    
    
    
    aliipay
        1
    aliipay  
       2019-08-08 21:33:40 +08:00
    这个和视频处理什么关系? 你这就读写文件,比较下两个文件是否一致就好了。
    很有可能是没有 close 文件导致没完全写入磁盘。
    a7a2a7a2
        2
    a7a2a7a2  
       2019-08-08 23:46:07 +08:00
    应该不是同行。。。

    建议去 github 搜索一下相关,例如如果是 h265 的,就找到他的解码 https://github.com/rainliu/GoHM
    其他类似。

    这个 https://github.com/adrg/libvlc-go 更适合你
    Oz2011
        3
    Oz2011  
       2019-08-09 09:47:13 +08:00
    你这段就是 copy 一个文件啊,如果源文件能放,copy 过去的不能放,比较两个文件是不是一样就是了。
    mp4 文件的 index 默认放在后面,确实有可能没有完全拷贝导致 index 没拷过去播放不了
    linbingqinag
        4
    linbingqinag  
    OP
       2019-08-09 13:45:45 +08:00
    solved
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1091 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:39 · PVG 02:39 · LAX 11:39 · JFK 14:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.