I'm not sure if this issue is with the Flash Player when encoding the stream or with the Flash Media Server that is saving the stream so I'll be posting in both forums.
The problem is when publishing an audio and video stream from Flash Player 11 (Windows, FF) to the Flash Server using the H.264 video codec. The audio portion of the recorded stream doesn't appear to be playable by anything and FFMPEG cannot process the audio stream. Here are the differences in the stream:
When using Sorenson as the video codec and recording the stream (flv) from the Flash server, the information about the audio stream from FFMPEG is this:
Stream #0.0: Audio: nellymoser, 22050 Hz, mono, s16
This clip can be played and processed by various players and FFMPEG with no problem.
When using H.264 as the video codec and recording the stream (f4v) from the Flash server, the information about the audio stream from FFMPEG is this:
Stream #0.1(eng): Audio: nmos / 0x736F6D6E, 22050 Hz, 1 channels
This clip does not play the audio and cannot be understood by FFMPEG.
I tried using the Speex codec as well and I have a similar issue as above (it doesn't play the audio stream and FFMPEG can't understand it).
Note the version of FFMPEG I'm using supports both Nellymoser and Speex so there should not be an issue.
1) Any idea why the codec appears different and won't play.
2) How to achieve the goal: send H.264 video stream with audio from the Flash Player and have a recorded stream with playable audio.
The problem still exists. I've created a bug for it here:https://bugbase.adobe.com/index.cfm?event=bug&id=3044308
Please let me know what you find. Unfortunately this bug results in the complete inabilty to have audio in recorded clips if you do not stream them back through FMS.
So are you saying that if I use H.264 as the codec to stream video using FP11, there will be no means to record that video with playable audio using Flash Media Server (including using the Post Processor Tool)?
You just can't play it back progressively or with another media player after you flatten the file with the post processor tool because the audio codec in the f4v container is a codec that's not supported in that container. However, you can stream the recorded, unflatten file via fms. If you are insistant on playing the file back via progressive playback than the recorded file should be in the flv container.
As for my comment in our public bug base for the bug you log for this issue about transcoding the audio stream of the flatten f4v file to either aac or mp3, you can do that with ffmpeg. However, it's somewhat of a hack. There will be an error initially when you first do this so to bypass that error, I've went into the libavformat/utils.c file and comment out the code block that check for that error, recompile and install. Once that's done you can transcode the audio stream with the following command;
ffmpeg -i recorded_stream_flatten.f4v -c:v copy -c:a libfaac -ar 44100 -ac 2 recorded_stream.mp4
The error I comment out in libavformat/utils.c check for the following error:
"Application provided invalid, non monotonically increasing ..."
It was suggested in this forum;
OK, I have tried using FFMPEG and get the error you suggest that needs to be commented out and rebuilt.
1) Is it possible for you to provide that static build of FFMPEG? I'm running Windows and from what I've seen getting it built in Windows is no small task.
2) If it is not possible to get that build of FFMPEG, did you build that on a Linux box or a Windows box?
3) See #1
I have been trying out various ffmpeg encodes of h.264 video recorded via FMS in an attempt to play back progressively.
The original recording plays very nice from FMS.
I have flattened with various tools, f4vpp, qt-faststart and encoded with various combinations of video and audio codecs and endless settings.
If I get the audio to work in sync, the video looks like crap. Lots of artifacts and blocks.
If I split the stream and use a copy of the video, the audio will not play progressively.
Has anyone ever actually successfully transcoded an h.264 ( baseline or main ) file that was recorded in flash via FMS?