Problems with Linux and x264
All right, I've been battling this beast for about a week now and I seem to be stuck. In a nutshell what I want to do is encode mpegs into QT7 compatible mp4s with the h264 codec on a Linux machine. I am already able to do this on a Windows machine without difficulty so I know it can be done but for a variety of reasons I need to move the process to a Linux system. Unfortunately I tried running FFMPeg under Wine but it didn't seem to care much for that producing a segment fault no matter what I tried to do. There also appeared to be some difficulty passing command line options through Wine but honestly, since I can't get FFMpeg to work under Wine that isn't much of an issue. So instead what I did was download the latest CVS of FFMPeg and x264. When I first compiled x264 I found that when I attempted to encode an MP4 with it the output was a pure white screen. This turned out to be because I had not yet compiled Gpac and set certain flags correctly for the make configuration of x264 (--extra-cflags="=-../gpac/include" --extra-ldflags="-L../gpac/bin/gcc"). With that out of the way I am now able to encode a raw YUV file with x264 and get a fully compatible MP4. Unfortunately the files that I am working with are mpegs and not raw yuv. Since they can be two hours long it really isn't practical to dump them into yuv, encode that through x264 and then mux the output together with a separate audio track since the yuv file would be ginormous. Besides, FFMpeg should be able to handle it as a single process anyway. Unfortunately when I try to use FFMpeg I get the exact same white screen that I got with x264 when it was missing the gpac libraries. I've tried adding --extra-cflags="=-../gpac/include" and --extra-ldflags="-L../gpac/bin/gcc" when I do the configuration for FFMpeg. I've tried locating all the critical files for gpac and copying them to both /usr/lib and /usr/local/lib (though it is possible that I have not moved the correct file since there are quite a few files in those directories and I am reluctant to dump their entire contents) and still I get the same white output. No errors in compile or execution, just white output in the video. So what I am wondering is if anyone else has had this problem or if anyone has a good guess as to how to fix it. Like I said, I've been beating my head against this for about a week now and I'm pretty much out of ideas, so any help would be appreciated. Thanks.
Sampson, Evan <esampson <at> soe.sony.com> writes:
So instead what I did was download the latest CVS of FFMPeg and x264.
When I first compiled x264 I found that when I attempted to encode an MP4 with it the output was a pure white screen. This turned out to be because I had not yet compiled Gpac and set certain flags correctly for the make configuration of x264 (--extra-cflags="=-../gpac/include" --extra-ldflags="-L../gpac/bin/gcc"). With that out of the way I am now able to encode a raw YUV file with x264 and get a fully compatible MP4.
Unfortunately when I try to use FFMpeg I get the exact same white screen that I got with x264 when it was missing the gpac libraries. I've tried adding --extra-cflags="=-../gpac/include" and --extra-ldflags="-L../gpac/bin/gcc" when I do the configuration for FFMpeg. I've tried locating all the critical files for gpac and copying them to both /usr/lib and /usr/local/lib (though it is possible that I have not moved the correct file since there are quite a few files in those directories and I am reluctant to dump their entire contents) and still I get the same white output. No errors in compile or execution, just white output in the video.
I'm currently fighting a very similar issue -- wondering if an answer was out there yet. I've compiled ffmpeg on a Windows machine with libx264 in an attempt to encode QT7-compliant .mp4 files. Any source files (.mov, .avi, ...) convert fine, but display a blank/white screen when played back in QT. The audio stream exists and plays fine. INTERESTING SIDENOTE: The files play back fine in mencoder, so the avc stream that is being generated is apparently valid. So, the question is, what is needed to get the file playing in QT? Currently I'm looking at the avcC box (the counterpart to the 'esds' box in mp4's). It appears to contain the pps (Picture Parameter Set) and sps (Sequence Parameter Set), but I haven't the foggiest how to generate or fake these structures. I've tried including an avcC box with 0 instances of sps and pps to no avail. I'm also open to the possibility that it could be something else entirely. The avcC box seems like it might even be optional. Can anyone help please?
participants (2)
-
esampson@soe.sony.com -
punkval@gmail.com