flv格式

Java+Windows+ffmpeg实现视频转换

纵饮孤独 提交于 2020-01-04 21:49:17
最近由于项目需要,研究了一下如何用Java实现视频转换,“着实”废了点心思,整理整理,写出给自己备忘下。 思路 由于之前没有没法过相关功能的经验,一开始来真不知道从哪里入手。当然,这个解决,google一下立马就发现了ffmpeg,网上讲解用Java+ffmpeg来进行视频转换的文章也不在少数,我主要参考的 这篇文章 。 上文提到的这篇文章,基本已经把开发流程什么的讲的很清楚了,这里总结下: 1)核心是利用ffmpeg进行视频转换,我们自己并不写转换视频的代码,只是调用ffmpeg,它会帮我们完成视频的转换。ffmpeg支持的类型有:asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等,这些类型,可以利用ffmpeg进行直接转换。ffmpeg不支持的类型有:wmv9,rm,rmvb等,这些类型需要先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式。 2)了解Java如何调用外部程序,这会是最困难的,也会是坑最多的地方。 3)根据我们的需求设置ffmpeg的参数。(这类文章网上已经有很多了,我也不用复制黏贴了,见 这里 ) 代码 上文中提到的那篇文章中的代码其实已经写的很友好了,基本拿来就能用,不过仍然存在许多问题,接下来会讲到,下面是文中的代码: 1 import java.io.File; 2 import java.util

FLV文件格式官方规范详解

▼魔方 西西 提交于 2019-12-07 07:27:55
——如果要学习一个新的知识点,官方手册可能是最快的途径。查看网上其他人的总结也许入门更快,但是要准确,深入,完整,还是要看官方手册。 以下内容来自对官方文档 Video File Format Specification Version 10的分析总结。过程中借助ffmpeg实际转换了一个flv文件用例研究。 一个FLV文件,每种类型的tag都属于一个流,也就是一个flv文件最多只有一个音频流,一个视频流,不存在多个独立的音视频流在一个文件的情况。(mp4好像是可以的) 另外,FLV文件格式所用的是大端序。 注:下面的数据type中,UI表示无符号整形,后面跟的数字表示其长度是多少位。比如UI8,表示无法整形,长度一个字节。UI24是三个字节。UB表示位域,UB5表示一个字节的5位。可以参考c中的位域结构体。 FLV头 Field type Comment 签名 UI8 ’F’(0X46) 签名 UI8 ‘L’(0X4C) 签名 UI8 ‘V’(0x56) 版本 UI8 FLV的版本。0x01表示FLV 版本是1 保留字段 UB5 前五位必须是0 是否有音频流 UB1 音频流是否存在标志 保留字段 UB1 必须是0 是否有视频流 UB1 视频流是否存在标志 文件头大小 UI32 FLV版本1时填写9,表明的是FLV头的大小,为后期的FLV版本扩展使用。包括这四个字节。

h264格式的flv和mkv无损转换成mp4的方法

ぃ、小莉子 提交于 2019-12-06 22:57:48
现在很多flv和mkv视频都是采用的h264封装,移动设备往往并不支持这些格式的文件,但却对h264封装的mp4支持良好。因此,为了视频能在电脑和移动设备间共享,我通常会将其转换成h264封装的mp4文件。 由于视频转码非常耗时间和cpu,如果flv和mkv本来就是采用的h264封装,完全不需要转码,只需要把h264视频和音频文件分离出来,重新混流一次即可,十几秒内即可完成,非常快速,并且由于没有转码操作,也避免了转码过程的画面损失。 下面我就介绍几种将h264格式的flv和mkv无损转换为mp4的方法。 一、通过ffmpeg转换mkv文件 ffmpge( 点击下载 )可以非常快速的实现h264视频的分离和混流,并且是命令行的操作,也没有什么参数需要设置,非常适合批量转换: ffmpeg.exe -i input.mkv -y -vcodec copy -acodec copy output.mp4 要实现批量转换,可以直接用这个批处理文件: for %%i in ( *.mkv ) do ffmpeg.exe -i "%%i" -vcodec copy -acodec copy " %%~ni.mp4 " 二、通过FlvExtract + mp4box转换mkv文件 这个方法本身也支持转换flv文件,但是ffmpeg貌似对flv的支持不够好,很容易转换失败。对于flv文件

FFMPEG进阶系列02-ffmpeg命令详解2

泄露秘密 提交于 2019-11-27 22:28:20
文章目录 帮助信息 查看ffmpeg版本 查看formats 其他大类的查看 查看具体demuxer/muxer/decoder/encoder/filter所支持的参数 查看FLV封装器的参数支持 查看flv解封装器的参数支持 查看H264(AVC)的编码参数支持 查看音频支持的PCM格式以及声道布局 更多资料,更多分享 帮助信息 查看ffmpeg版本 通过ffmpeg -version查看ffmpeg的版本,这里所查看的版本,是详细的版本,包含libavformat、libavcodec、libavutil、libavfilter、libswscale、libswresample的版本,如图: ffmpeg.exe -version ffmpeg version 4.0 .2 Copyright ( c ) 2000 - 2018 the FFmpeg developers built with gcc 7.3 .1 ( GCC ) 20180722 configuration : -- disable - static -- enable - shared -- enable - gpl -- enable - version3 -- enable - sdl2 -- enable - bzlib -- enable - fon tconfig -- enable -