FLV格式

了解FLV格式不是为了解析FLV文件格式,而是为了更好理解RTMP,以及实现H264 OVER RTMP

本人在搞H264 OVER RTMP 看了很多开源 虽然结果正确,但搞不懂为什么,很闹心,终于无意中看到FLV格式,

然后联想到RTMP 才有悟。

不管FLV还是MP4格式,伟大的 简单的 通用的格式表达法 TLV(TYPE LENGTH VALUE)概括了所有的文件格式及协议,

大同小异。了解TLV的本质,那所有的格式,及协议的理解就很简单了。

FLV 是一种文件格式,即存放音视频数据的容器,跟MP4,WMV,ASF 一个等级。

有文件头 文件体(文件头 文件体 也是TLV的体现,任何协议的设计也是头和体组成,包括TCP/IP)

文件体 由TAG,TAG可嵌套,然也。


文件头:


文件体:

FLV 的tag 结构:


音频tag:

音频AAC tag:


视频TAG:



视频AVC(H264) tag:


AVC 解码参数: AVCDecoderConfigurationRecord tag

参考规范下载:

http://download.csdn.net/detail/winlinvip/6602533

http://www.adobe.com/devnet/swf.html

http://www.adobe.com/devnet/f4v.html





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将FLV格式转换为MP4格式,可以使用Java编程语言来完成。下面是实现此过程的一种可能方法。 首先,需要确保计算机上已安装FFmpeg(一个用于处理多媒体文件的自由软件)。然后,可以使用Java的Runtime类来执行FFmpeg的命令行命令。 创建一个Java类,导入java.io和java.util包。然后,在该类中,可以使用以下代码以FLV格式的文件路径作为输入,并指定输出MP4文件的路径: ```java import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; public class FLVtoMP4Converter { public static void main(String[] args) { String inputFilePath = "path/to/input.flv"; // 输入FLV文件路径 String outputFilePath = "path/to/output.mp4"; // 输出MP4文件路径 try { ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg", "-i", inputFilePath, outputFilePath); Process process = processBuilder.start(); InputStream inputStream = process.getErrorStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } int exitCode = process.waitFor(); if (exitCode == 0) { System.out.println("转换成功!"); } else { System.out.println("转换失败!"); } } catch (Exception e) { e.printStackTrace(); } } } ``` 代码中,使用ProcessBuilder类创建一个新的进程,执行FFmpeg的命令行命令。FFmpeg的命令行参数"-i"指定输入文件路径,最后一个参数指定输出文件路径。通过读取进程的错误流,可以获取FFmpeg输出的信息。如果转换成功,输出"转换成功!";如果转换失败,输出"转换失败!"。 注意:在运行此代码之前,请确保计算机上已正确安装并配置了FFmpeg,并且在输入文件和输出文件路径中替换为实际的文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值