Our encoding service accepts input files in .mov, .mp4, .m4v, or .f4v formats. These are actually rather broad formats -- a very wide variety of files, using different video codecs, different audio codecs, and even different internal layouts can all conform to these formats. And there are many tools that create files of these formats, and they do not all create files that are truly compliant with the specifications. Remember that just because a given file will play back in one or more players does not mean that the file is properly formatted or compliant with the specifications.
Even though our Encoding options appear as two very related offerings, Open Captioning and Subtitling are two very different processes. In Subtitling, we are "injecting" text data into the movie file. This text data is picked up by the player at play time and rendered by the player (in general, we have little or no control over how the player will render this text). Subtitling involves simply rewriting the header and data fields in the movie file -- the audio/video data is left intact. Open Captioning, by contrast, involves rendering the text data into video, superimposing it on the existing video, and then transcoding the whole media to create a brand new video file. In Open Captioning, we are actually making a new movie file -- this is why sometimes there are issues with the process or the end file, since we are actually modifying the original input video.
When we have input files that are "well formed" (i.e.: they are compliant with the specifications, they are properly encoded, and they use both a video codec and audio codec that are known to our system), then our encoding process will work as expected. However, if the input movie is not "well formed", then our encoding process may fail. We have detected a couple of broad categories of error conditions, and we try to fix/compensate when those errors occur:
- Open Captioning: Because this process always involves a transcode, if our system is not able to decode the audio/video in the file then it will not be able to transcode it. When this happens, we report to our customers that there is a problem with their original movie file. You can learn more about repairing your media file in our article on this topic.
- Subtitling: With Subtitling we are not transcoding the file, so we do not actually need to be able to read the movie -- we just inject new data into the header/data fields. However, if the header has a problem or is not compliant with specifications, then this inject may not work. Also, our injection tool requires that the audio track be an mp4 audio track (it is possible for the input file to be valid and compliant but have the audio encoded in a different format). When our system detects these problems, it will attempt to transcode the movie to a known .mov format -- this should cause the header to get re-generated and the audio format to be encoded to mp4 format. Once the transcode is done, we retry the injection. Again, the transcode may or may not solve the problem. When it does not, we report to our customers that there is a problem with their original movie file.