FLV is the container Flash used, and what most FLV files in the wild hold is not the H.264 and AAC that RTMP carries today but the codecs Flash shipped with: Sorenson H.263 for the picture and MP3 for the sound. This file is one of those. flvdmx_1 walks the tag stream and emits one pid per track with the codec named — the picture size read from the Sorenson picture header, the sampling rate from the MP3 frame header, since the tag's own 2-bit rate field cannot say 48 kHz. ffmpeg-h26x_1 decodes the video (Sorenson H.263 is a variant of H.263, and adds 3 Ko to the module), libx264_1 re-encodes it, and isobmff_1 writes the MP4 the <video> element plays — with the MP3 stored as it is, no decoder needed. All 1116 frames come out, and the audio in the output is bit-identical to the source.
<video is="universal-video_1" src="ocean.flv" using="solver_1"
with="flvdmx_1;ffmpeg-h26x_1;isobmff_1;libx264_1" controls> </video>
The same demultiplexer handles the other FLV flavour, AVC with AAC, which then goes through h264bsd_1 instead: with="flvdmx_1;h264bsd_1;isobmff_1;libx264_1". VP6, Screen Video and Nellymoser have no decoder here and are skipped with a warning.
The specifications of the test sequence are :
| Format | FLV, Sorenson H.263 960x400 at 24 fps, 1116 frames, MP3 48 kHz stereo, 46 s |
| FileSize | 7,1 Mo |
| Solver | solver_1 |