ffmpeg封装格式的一些说明

1、输出MP4格式时前置moov

moov对于MP4格式的解码和播放至重要,解码器必须获取moov的全部信息,才能在成功解析后获其中每一个码流包的位置和时间戳。当使用ffmpeg的默认参数出为MP4格式时,moov会在所有数据转封装完成后生成,然后加在文件的末尾。由于获取moov相对较为复杂,因此MP4格式流媒体播放等场景并不友好。

为了解决该问题,在使用ffmpeg进行转封装操作时,可以在选项-ovflags中加入参数faststart。 加入参数faststart后,ffmpeg在完成转封装操作后会进行一次加操作------将moov置于文件头部。

需要注意的是即使加入这个参数,输出文件过程中意外中断也会造成视频文件的损坏。

ffmpeg -i input.avi -c copy -movflags faststart output.mp4

2、输出FLV格式时添加关键帧信息

FLV文件中,每个音视频码流包都被封装在一个音频Tag或视频ag中,其中还包含每个Tag的时间戳和关键帧标识。与MP4格式同的是,FLV格式的视频在播放时难以获取整体的关键帧列表,此难以进行拖动播放。

为了解决这一问题,在使用ffmpeg输出LV格式的视频文件时,可以在选项-flvflags中加入参数dd_keyframe_index。这样 FFmpeg 将在输出文件中写入关键帧索引。

ffmpeg -i input.mp4 -c copy -f flv -flvflags add_keyframe_index output.flv
相关推荐
-Mr_X-37 分钟前
windows下srs流媒体服务器使用ffmpeg推流
ffmpeg
dvlinker2 小时前
C++开源项目 VLC 源代码的交叉编译以及库的裁剪方法详解
ffmpeg·mingw-w64·msys2·cygwin·开源vlc·vlc编译·vlc裁剪
因我你好久不见16 小时前
springboot java ffmpeg 视频压缩、提取视频帧图片、获取视频分辨率
java·spring boot·ffmpeg
cuijiecheng20181 天前
音视频入门基础:MPEG2-TS专题(21)——FFmpeg源码中,获取TS流的视频信息的实现
ffmpeg·音视频
cuijiecheng20181 天前
音视频入门基础:AAC专题(13)——FFmpeg源码中,获取ADTS格式的AAC裸流音频信息的实现
ffmpeg·音视频·aac
流氓也是种气质 _Cookie2 天前
uniapp blob格式转换为video .mp4文件使用ffmpeg工具
ffmpeg·uni-app
网络安全queen2 天前
网络安全-企业环境渗透2-wordpress任意文件读&&FFmpeg任意文件读
安全·web安全·ffmpeg
yerennuo2 天前
FFmpeg库之ffmpeg
qt·ffmpeg
韩曙亮2 天前
【FFmpeg】解封装 ① ( 封装与解封装流程 | 解封装函数简介 | 查找码流标号和码流参数信息 | 使用 MediaInfo 分析视频文件 )
ffmpeg·音视频·视频流·mediainfo·解封装·码流
yerennuo2 天前
FFmpeg 框架简介和文件解复用
ffmpeg