使用 RTSP 接收 H.264+ACC 的資料,並透過 ffmpeg 將此檔案寫入 MP4,此時 ffmpeg 會持續寫入 H.264 與 AAC 的資料,並在使用者停止寫入時,才將 MP4 的 moov atom 放在檔案結尾,此情況可能會造成某些撥放器無法正確撥放此 MP4。
若將 MP4 moov atom 移動到檔案開始部分,便可以解決此問題。
ffmpeg 提供了一個工具 qt-faststart 用來解決此問題。
以下簡單介紹其用法
編譯並安裝至系統目錄
cd ffmpeg
./configure
make tools/qt-faststart
sudo cp tools/qt-faststart /usr/bin/
$which qt-faststart
/usr/bin/qt-faststart
使用方式
Usage: qt-faststart
Reference:
- http://www.ffmpeg.org/doxygen/1.0/qt-faststart_8c-source.html
- http://stackoverflow.com/questions/8061798/post-processing-in-ffmpeg-to-move-moov-atom-in-mp4-files-qt-faststart
- MP4 Reader