<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mp4box on heartnn的自留地</title><link>https://www.heartnn.com/tags/mp4box/</link><description>Recent content in Mp4box on heartnn的自留地</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>&amp;copy;2008-2022 heartnn的自留地</copyright><lastBuildDate>Mon, 24 Jun 2024 16:08:20 +0800</lastBuildDate><atom:link href="https://www.heartnn.com/tags/mp4box/index.xml" rel="self" type="application/rss+xml"/><item><title>mp4文件加入字幕显示</title><link>https://www.heartnn.com/2024/06/24/mp4-add-subtitle/</link><pubDate>Mon, 24 Jun 2024 16:08:20 +0800</pubDate><guid>https://www.heartnn.com/2024/06/24/mp4-add-subtitle/</guid><description>&lt;p>众所周知，&lt;a href="https://mkvtoolnix.download/">MKVToolNix&lt;/a>可以为mkv文件加入多种字幕，但到了mp4，内嵌字幕会变的比较麻烦。起因是从Youtube下载了一部MV，由于音视频和字幕是分开下载的，而且下载的是AV1编码，就想着不要重新打包mkv，而是直接在mp4中嵌入字幕。&lt;/p>
&lt;p>首先说原理，PotPlayer是可以识别到Codec ID为&lt;code>tx3g&lt;/code>标签的字幕，&lt;code>tx3g&lt;/code>是用于3GPP/MPEG时期的带有时间标记的文本，我们要利用这个特性，让字幕显示为&lt;code>tx3g&lt;/code>，这样一般的播放器就都可以识别了。实现起来比较简单的方式就是使srt或者ttxt(&lt;a href="https://wiki.gpac.io/xmlformats/TTXT-Format-Documentation/">GPAC Timed Text XML&lt;/a>)会通过MP4Box直接显示为&lt;code>tx3g&lt;/code>。&lt;/p>
&lt;p>先将下载的字幕（我下载到的是webvtt格式）转换为srt，webvtt转换为srt比较简单，没有工具的情况下，作为文本文件打开，把标记WEBVTT文件头删掉就可以了。&lt;/p>
&lt;p>然后通过下面的代码直接mux即可：&lt;/p></description></item><item><title>利用MP4Box解出tx3g格式字幕</title><link>https://www.heartnn.com/2022/12/09/mp4-subtitle-usage/</link><pubDate>Fri, 09 Dec 2022 16:08:20 +0800</pubDate><guid>https://www.heartnn.com/2022/12/09/mp4-subtitle-usage/</guid><description>&lt;p>首先说明的是，&lt;a href="https://mkvtoolnix.download/">MKVToolNix&lt;/a>无法加载tx3g格式的字幕，这种字幕一般封装在mp4文件中，以网上下载的居多。另外用&lt;a href="https://github.com/nilaoda/BBDown">BBDown&lt;/a>下载的bilibili视频如果带字幕的话，也是这种格式。&lt;/p>
&lt;p>以某集电视剧为例，文件名：&lt;code>IRIS.S02E01.2013.WEB-DL.1080p.H265.AAC-Xiaomi.mp4&lt;/code>&lt;/p>
&lt;p>首先需要了解字幕文件所在的轨道号：&lt;/p></description></item><item><title>AAC封装M4A简易工具</title><link>https://www.heartnn.com/2016/11/12/aac-to-m4a/</link><pubDate>Sat, 12 Nov 2016 08:01:58 +0800</pubDate><guid>https://www.heartnn.com/2016/11/12/aac-to-m4a/</guid><description>最近手头一大堆的 mp4 视频，从中提取了音频部分，准备放在手机上听，而 mp4 一般提取音频是 aac 格式，这种文件放在 foobar2000 里播放的时候是没有进度条的，所以必须封装为 m4a，m4a 本身其实就是 mp4。
工具最简单的用 mp4box 就可以了，也可以用 ffmpeg，不过这货过于强大，而且兼容性不如 mp4box。
原理参考这里:
mp4box.exe -add 1.aac:name=&amp;#34;&amp;#34; -new 1.m4a 顺便做了个批处理工具，直接把要转换的 aac 拖入即可。</description></item><item><title>关于MP4封装的一些事</title><link>https://www.heartnn.com/2015/07/28/mp4-package/</link><pubDate>Tue, 28 Jul 2015 00:17:33 +0800</pubDate><guid>https://www.heartnn.com/2015/07/28/mp4-package/</guid><description>&lt;p>众所周知，Youtube提供的视频，其中最高规格是1080p，但却只有video only，如果想下载到本地的话，是没有声音的，有声版本最高是720p.h264.aac，这时，便需要提取这个720p的音频部分，再加上1080p的视频部分进行封装。&lt;/p>
&lt;p>封装的工具大多是ffmpeg或者&lt;a href="http://www.videohelp.com/software/mp4box">mp4box&lt;/a>，其中包含有很多前端，比如My MP4Box GUI或者YAMB。&lt;/p>
&lt;p>最近，heartnn在potplayer播放某个自己已经封装完的视频后，发现下面的问题：&lt;/p>
&lt;p>&lt;img src="https://www.heartnn.com/uploads/2015/07/my-mp4box-gui.png" alt="">&lt;/p></description></item></channel></rss>