Я бы сделал 2 прохода.
1) Пробежался по контенту, достал тип, и положил рядышком в файл
handle=fopen(filename,'ro');
type=fseek (handle ,1,4) ;
fclose(handle);
2) Отрезал контент и положил рядом без ext
3) Прошелся по контенту ffmpeg и достал бы дополнительную инфу: кодек, битрейт, размер, контейнер и положил бы в тотже файл и тип.
4) На основании п 3 переименовал бы файл с нормальным расширением
Поле маgic скорее всего и содержит инфу п3