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.

I'm creating an MP4 file with FFmpeg 1.1.1, using life and aevalsrc to generate some test video and audio:

ffmpeg -f lavfi -i life -f lavfi -i aevalsrc=0 -frames:v 750 life.mp4

If I play it on an iPhone running iOS 4.1, an audio language button appears (indicated by the yellow arrow) which is not normally displayed when other MP4 files are played:

iPhone video screen

Tapping this button brings up an audio language screen, with "Undetermined" being the only option:

iPhone video screen, audio language option

Using FFprobe to show the stream info, I can see a "language": "und" metadata tag in the video and audio streams:

ffprobe -v quiet -print_format json -show_streams life.mp4

{
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_type": "video",
            ...
            "tags": {
                "language": "und",
                "handler_name": "VideoHandler"
            }
        },
        {
            "index": 1,
            "codec_name": "aac",
            "codec_type": "audio",
            ...
            "tags": {
                "language": "und",
                "handler_name": "SoundHandler"
            }
        }
    ]
}

However, I also have an old MP4 file containing the "language": "und" metadata tag which does not cause the audio language button to appear on the iPhone. So the presence of this tag is not the cause of the button appearing.

I've been trying to figure out what causes the audio language button to be displayed for some MP4 files but not others.

Here's the FFprobe output for these two MP4 files, and the diff of them:

Could the difference in the compatible_brands value be the cause? It's "mp41" when the button isn't displayed, and "isomiso2avc1mp41" when the button is displayed.

Here's the MediaInfo output for these two MP4 files, and the diff of them:

So my question is: how can I get FFmpeg to generate an MP4 file which does not cause the audio language button to appear on the iPhone? Maybe a metadata tag needs to be added or removed using the -metadata option?

Many thanks in advance for your help!

share|improve this question

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.