目前,我正在访问一个流h264文件,并希望将其保存下来,以便能够对帧进行切片。但是,保存/打开.flv文件时出现了问题
当指向地址栏中的URL时,我被告知这是一个x文件。
然后,我尝试执行以下操作以保存流的一块。
URL url = new URL("http://foo.bar.com/foo/bar");
HttpURLConnection conn = (HttpURLConnection) url
.openConnection(proxy);
conn.setRequestMethod("GET");
File f = new File("C:\\tmpArea\\tmp.flv");
FileWriter fr = new FileWriter(f);
bw = new BufferedWriter(fr);
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output = "";
int i = 0;
while (((output = br.readLine()) != null) && i < 100000) {
bw.write(output);
i++;
}完成此操作后,我尝试在VLC Media Player中打开该文件,并被告知:
没有合适的解码器模块: VLC不支持音频或视频格式"undf“。 不幸的是,你没有办法解决这个问题。
然后我想,也许这不是一个FLV文件,那是我的责任。所以我用了一个磨坊的六角编辑。打开HexEditor中的文件将提供以下信息:
. width =‘width 5’> onMetaData持续时间,高度,视频数据,帧,音频,音频,扩音器,音箱,立体声编码器,Lavf52.10.6.0 .
有什么不同的方法我应该试图保存这些数据吗?有没有我没看到的转换/解码问题?
发布于 2014-01-23 21:52:23
您正在使用Reader和Writer来读取字节并将它们转换为字符,以读取由字节组成的二进制文件。从字节到字符的转换会破坏数据。您应该使用InputStream和OutputStream。
https://stackoverflow.com/questions/21319905
复制相似问题