Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

How can I convert/transmux Smooth Streaming ismv files to mp4 or wmv? I've often read about mp4split but it doesn't seem to be freely available any more.

share|improve this question

2 Answers 2

mp4split is a little hard to find, but you can get it here:

http://h264.code-shop.com/download/mp4split-2.2.0.tar.gz

To download and install:

cd
wget http://h264.code-shop.com/download/mp4split-2.2.0.tar.gz
tar -zxvf mp4split-2.2.0.tar.gz

cd ~/mp4split-2.2.0
./configure
make
sudo make install

The procedure is explained on the code-shop.com Trac Wiki. Then, merging should be as simple as:

mp4split -o output.mp4 input.ismv

That is, if we're talking about the correct mp4split here.


I haven't been able to compile it on OS X by default. It'll probably fail on other *nix platforms as well. There's a header file missing, so we're gonna have to add some code. To compile it, remove the following from src/output_ismv.c at line 26:

#ifdef WIN32
#else
#include <byteswap.h>
#endif

And replace it with:

 /* Swap bytes in 16 bit value.  */
#ifdef __GNUC__
# define bswap_16(x) \
    (__extension__                    \
     ({ unsigned short int __bsx = (x);               \
        ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)); }))
#else
static __inline unsigned short int
bswap_16 (unsigned short int __bsx)
{
  return ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8));
}
#endif

/* Swap bytes in 32 bit value.  */
#ifdef __GNUC__
# define bswap_32(x) \
    (__extension__                    \
     ({ unsigned int __bsx = (x);               \
        ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >>  8) |    \
   (((__bsx) & 0x0000ff00) <<  8) | (((__bsx) & 0x000000ff) << 24)); }))
#else
static __inline unsigned int
bswap_32 (unsigned int __bsx)
{
  return ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >>  8) |
    (((__bsx) & 0x0000ff00) <<  8) | (((__bsx) & 0x000000ff) << 24));
}
#endif

Then, try ./configure, then make and make install.

share|improve this answer
    
Great! Thank you! I'll try your suggestions as soon as possible. –  TheLostOne Jan 20 '13 at 17:43
    
I hope it still works after the manual code fix. It compiled for me, but it might fail while transcoding. –  slhck Jan 20 '13 at 17:44
1  
Following this document unified-streaming.com/support/documentation/content-packaging I was trying to convert an f4f to mp4 using mp4split. Tried your code above and this, gist.github.com/feuvan/4705123, mp4split installs but doesn't seem to work. –  notacouch Feb 24 at 17:30

Try ffmpeg. It is more or less the standard for transcoding.

share|improve this answer

protected by slhck Oct 20 '13 at 17:47

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.