MP4box 封装媒体裸码流

MP4BOX是MP4文件封装工具,仅支持命令行方式调用。
以下是其支持的字幕封装参数的调用实例:

mp4box -add 1.srt:lang=zh:name=Caption:hdlr=sbtl:font="微软雅黑":size=22 -new 1.srt.mp4

如果需要支持iPhone/iTouch/iPod/iPad等设备,可以添加参数“-ipod”:

mp4box -ipod -add 1.srt:lang=zh:name=Caption:hdlr=sbtl:font="微软雅黑":size=22 -new 1.srt.mp4

其中,可以修改的部分用红色标出如下:

mp4box -ipod -add 1.srt:lang=zh:name=Caption:hdlr=sbtl:font="微软雅黑":size=22 -new 1.srt.mp4

1 是原文件名,需要更改成你的字幕文件名;
zh 是中文的代码,en是英文,“mp4box -language”命令可以查看所有语言的代码;
Caption 是个方便识别的名字,可以随便更改;
“微软雅黑” 可以更改成你想要的字体名称;
22 可以更改成你想要的字体大小,如18。

一个完整的封装mp4视频文件的命令就像:

mp4box -ipod -add 1.h264:fps=29.97:name=Video -add 1.aac:lang=en:name=Audio -add 1.chs.srt:lang=zh:name=Caption:hdlr=sbtl:font="微软雅黑":size=22 -add 1.eng.srt:lang=en:name=Caption:hdlr=sbtl:font=Georgia:size=20 -new "合成1.mp4"

这么封装出来的mp4文件,在电脑上使用Quick Time Pro可以播放但是没有字幕。iTunes同步到iPhone/iTouch/iPod/iPad等设备上,播放时出现两种情况:1、有的文件可以播放并显示字幕,有的文件则提示不支持而无法播放。

时间: 2024-10-11 16:43:32

MP4box 封装媒体裸码流的相关文章

例程:如何使用PX2硬解码H.264裸码流 [CODE_PX2]Decode_RAW_H264_FILE

Rayeager PX2开发板具有非常强大的多媒体处理能力,如果需要调用硬件加速针对普通媒体文件/码流进行解码,只需按照安卓标准调用多媒体相关接口即可. 针对一些行业用户的特殊需求,Rayeager PX2实际上也开放了接口可以对H.264等裸码流进行解码. 这里提供一份代码即可实现H.264裸码流的解码,如果您具有一定的Android系统开发经验,很快就能理解并进行相关改写.使用方法: 在PX2的Android编译环境根目录下将代码解压,并进入ChipSPARK_PX2_H264_DECODE

C# 播放H264裸码流

要播放H264裸码流,可以分拆为以下三个工作: 1.解码H264裸码流获取YUV数据 2.将YUV数据转换为RGB数据填充图片 3.将获取的图片进行显示 要完成工作1,我们可以直接使用海思的解码库,由于海思的解码库是C++的动态库,要完成在C#中进行调用可以参考海思h264解码库这篇文章,介绍的很详细.但是对于该博文只介绍了一种帧解码的方法,并没有介绍真正实用的流式解码方法.自己根据解码库的参考文档写了一份C#版的流式解码算法. //初始化 // 这是解码器输出图像信息 hiH264_DEC_F

Wireshark Lua: 一个从RTP抓包里导出H.264 Payload,变成264裸码流文件(xxx.264)的Wireshark插件

Wireshark Lua: 一个从RTP抓包里导出H.264 Payload,变成264裸码流文件(xxx.264)的Wireshark插件 在win7-64, wireshark Version 2.0.2 (v2.0.2-0-ga16e22e from master-2.0)是可用的,老版本1.0.x未找到对应的tools选项卡

FFmpeg 获取h264裸码流

有时候我们需要获取h264裸码流进行分析.本文介绍如何通过FFmpeg 获取h264 码流.获取到的h264码流文件 可以直接通过vlc 等播放器直接播放. 如下图 是通过WinHex工具 分析的一个h264文件 ffmpeg 获取h264 思路如下: 1,写4位头(00,00,00,01) 2,写sps 3,写4位头(00,00,00,01) 4,写pps 5,将读到的AVPacket.data 的前4位替换成(00,00,00,01)写文件. sps pps的获取参考上篇博文. 详细代码如下

OpenCV采集的视频流转化成H264格式裸码流

本文通过OpenCV库采集摄像头视频,随后通过libx264库把帧转化成264格式的码流. 头文件: #ifndef _X264_ENCODER_H #define _X264_ENCODER_H #include <stdint.h> #include "x264.h" #include "opencv/cv.h" #include "opencv/highgui.h" struct x264_encoder{ x264_param

H264码流中SPS PPS详解&lt;转&gt;

转载地址:https://zhuanlan.zhihu.com/p/27896239 1 SPS和PPS从何处而来? 2 SPS和PPS中的每个参数起什么作用? 3 如何解析SDP中包含的H.264的SPS和PPS串? 1 客户端抓包 在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的H264码流进行分析,如下所示: 在这里我们可以看到对解码视频起关键作用的SPS和PPS. 双击SPS内容如下: 双击PPS内容如下: 那么从上面的sps中我们知道图像的宽,高. 宽=(19+1

关于对H264码流的PS的封装的相关代码实现

1.写在开始之前: 最近因为新工作要维护别人留下的GB模块代码,先熟悉了流程,然后也试着封装了下ps流,结果也能通过测试正常预览了,当然,其中开发读文档的头疼,预览花屏,卡帧的事情都有遇到,当时慢慢的看文档,整理逻辑,也就都顺利解决了,下面把大致的一些流程代码贴出来分享下.既然是对接国标,自然少不了通读它的标准文档和相关的RFC文档了!具体的我就不说了,可以用百度google下的. 注意:因为是GB要求ps封装后再加上rtp头的格式来的, 所以下面代码中我也加上了rtp头,如果不需要的话,直接屏

aac adts &amp; LATM封装码流分析

本文继续上一篇文章的内容,介绍一个音频码流处理程序.音频码流在视频播放器中的位置如下所示. 本文中的程序是一个AAC码流解析程序.该程序可以从AAC码流中分析得到它的基本单元ADTS frame,并且可以简单解析ADTS frame首部的字段.通过修改该程序可以实现不同的AAC码流处理功能. 原理 AAC原始码流(又称为"裸流")是由一个一个的ADTS frame组成的.他们的结构如下图所示. 其中每个ADTS frame之间通过syncword(同步字)进行分隔.同步字为0xFFF(

浅析live555媒体库之实现实时码流预览

前面已经介绍了,通过live555来实现媒体文件的播放.这篇主要和大家说一下实时流的通过live555的播放. 相对之前的文件流,这里实时流只需要多实现一个子类:通过继承RTSPServer类来实现一些自己的相关操作. 如:有客户端请求过来的时候,需要先通过lookupServerMediaSession找到对应的session,这里可以定义自己的streamName,也就是url后面按个串,.如果没有找到,则新建生成自己需要的不同的session,还有填充自己的SDP信息等等操作. 继承RTS