Skip to main content



mod_mp4v2 implemented a record_mp4 APP and the mp4 file format.

Click here to expand Table of Contents


mod_mp4v2 implemented a record_mp4 APP and the mp4 file format.

So you could do (with video echoed back like record_fsv)

<action application="record_mp4" data="/tmp/test.mp4"/>

or the record APP (without video echoed back, and need code in the video-media-bug branch to work), be sure to disable file write buffering, needed for audio/video(ear-mouth) sync.

<action application="export" data="enable_file_write_buffering=false"/>
<action application="record" data="/tmp/test.mp4"/>

Also uuid_record should work

uuid_record <uuid> start /tmp/test.mp4

CPU Load

A few parameters may be prepended to the record file path inside braces to indicate video encoding speed/quality and which video profile to use. This affects CPU load since slower encoding yields better video quality at the cost of greater CPU computation load.


vencspd - one of fast, medium, slow

vprofile - baseline, main, high

For other parameters see /usr/src/freeswitch/src/switch_core_file.c


It's currently in the video-media-bug branch.

Audio codec using PCMU and video is H264 only.

There's a mod_mp4 which implemented play_mp4. However it need the mp4 file be probably "hinted". I haven't find a tool that can hint an existing mp4 file so I never get it work.

I tried to contact the original author but got no response. And also because mod_mp4 is C++ and I'm more happy to C, so I created mod_mp4v2. And also because I added the file format interface, I think it's more reasonable to put it under mod/formats.

Video has tons of params and most are hard coded. To make everything work still need a lot of work...


The current Makefile need mp4v2-2.0.0 in the current(mod_mp4v2) directory.

Download from

git checkout video-media-bug
cd src/mod/formats/mod_mp4v2
cd mp4v2-2.0.0
cd ..
make install

Have fun.