VideoRecorder.wiki
changeset 2098 ead873175f4f
parent 2097 0408e1f3aff6
equal deleted inserted replaced
2097:0408e1f3aff6 2098:ead873175f4f
    11 When you play game or watch a demo press ‘R’, game then will start to record camera positions to `VideoTemp/?.txtout` and sound to `VideoTemp/?.sw`. Press ‘R’ again to stop recording. After you will close game engine, `QTfrontend` will rename `?.txtout` to `?.txtin` and run an invisible instance of game engine which will actually encode video using prerecorded camera positions and sound; during encoding video file will be in `VideoTemp` and after encoding, it finishes it and moves it to `Videos/` and the files `?.txtin` and `?.sw` will be automatically removed.
    11 When you play game or watch a demo press ‘R’, game then will start to record camera positions to `VideoTemp/?.txtout` and sound to `VideoTemp/?.sw`. Press ‘R’ again to stop recording. After you will close game engine, `QTfrontend` will rename `?.txtout` to `?.txtin` and run an invisible instance of game engine which will actually encode video using prerecorded camera positions and sound; during encoding video file will be in `VideoTemp` and after encoding, it finishes it and moves it to `Videos/` and the files `?.txtin` and `?.sw` will be automatically removed.
    12 
    12 
    13 == Notes ==
    13 == Notes ==
    14 
    14 
    15  * If you press ‘R’ multiple times during one game, you will get several videos. They all will be encoded simultaneously, and each instance of game engine will use hundreds of megabytes so be careful.
    15  * If you press ‘R’ multiple times during one game, you will get several videos. They all will be encoded simultaneously, and each instance of game engine will use hundreds of megabytes so be careful.
       
    16  * If you entered the `/lua` chat command at any time, you cannot record videos anymore for the remainder of the game. Any active recordings will stop.
    16  * It is supposed to use H.264 (MPEG-4 AVC) video codec. Binaries of `ffmpeg` for Windows include it. However, on GNU/Linux you may have stripped `libavcodec` without `libx264`, then different codec will be used which will generate several times larger files. For Ubuntu, this may help: http://ubuntuforums.org/showthread.php?t=1117283
    17  * It is supposed to use H.264 (MPEG-4 AVC) video codec. Binaries of `ffmpeg` for Windows include it. However, on GNU/Linux you may have stripped `libavcodec` without `libx264`, then different codec will be used which will generate several times larger files. For Ubuntu, this may help: http://ubuntuforums.org/showthread.php?t=1117283
    17  * Logs from ffmpeg/libav are written to game log (`Logs/game0.txt`).
    18  * Logs from ffmpeg/libav are written to game log (`Logs/game0.txt`).
    18  * Tested only on Windows and GNU/Linux.
    19  * Tested only on Windows and GNU/Linux.
    19  * For offscreen-rendering, the OpenGL FAQ (http://www.opengl.org/wiki/FAQ#Offscreen_Rendering) suggests the following:
    20  * For offscreen-rendering, the OpenGL FAQ (http://www.opengl.org/wiki/FAQ#Offscreen_Rendering) suggests the following:
    20   * “_Some people want to do offscreen rendering and they don't want to show a window to the user. The only solution is to create a window and make it invisible, select a pixelformat, create a GL context, make the context current. Now you can make GL function calls. You should make a FBO and render to that. If you chose to not create a FBO and you prefer to use the backbuffer, there is a risk that it won't work._”. SDL 1.2 does not allow to create invisible window, that’s why glut library is used. (SDL 1.3 allows it)
    21   * “_Some people want to do offscreen rendering and they don't want to show a window to the user. The only solution is to create a window and make it invisible, select a pixelformat, create a GL context, make the context current. Now you can make GL function calls. You should make a FBO and render to that. If you chose to not create a FBO and you prefer to use the backbuffer, there is a risk that it won't work._”. SDL 1.2 does not allow to create invisible window, that’s why glut library is used. (SDL 1.3 allows it)
    21  * Video recorder relays on framebuffer extension or auxiliary buffer for offscreen rendering. If your OpenGL implementation has none of these, then video recording may not work for you. Although, framebuffer extension must be common nowadays.
    22  * Video recorder relays on framebuffer extension or auxiliary buffer for offscreen rendering. If your OpenGL implementation has none of these, then video recording may not work for you. Although, framebuffer extension must be common nowadays.
    22  * Setting large resolutions for video may not work due to limitations in your OpenGL implementation. At least resolutions not exceeding your screen resolution should work.
    23  * Setting large resolutions for video may not work due to limitations in your OpenGL implementation. At least resolutions not exceeding your screen resolution should work.
    23  * If you entered the `/lua` chat command at any time, you cannot record videos anymore for the remainder of the game. Any active recordings will stop.