視頻處理,

2019-08-08 19:59:42 +08:00
 linbingqinag

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



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)
	}
}





1364 次点击
所在节点    程序员
4 条回复
aliipay
2019-08-08 21:33:40 +08:00
这个和视频处理什么关系? 你这就读写文件,比较下两个文件是否一致就好了。
很有可能是没有 close 文件导致没完全写入磁盘。
a7a2a7a2
2019-08-08 23:46:07 +08:00
应该不是同行。。。

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

这个 https://github.com/adrg/libvlc-go 更适合你
Oz2011
2019-08-09 09:47:13 +08:00
你这段就是 copy 一个文件啊,如果源文件能放,copy 过去的不能放,比较两个文件是不是一样就是了。
mp4 文件的 index 默认放在后面,确实有可能没有完全拷贝导致 index 没拷过去播放不了
linbingqinag
2019-08-09 13:45:45 +08:00
solved

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/590273

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX