So the intended audience should also be considered when selecting a keyframe interval. For example to remux an MP4 file containing an H.264 stream to mpegts format with ffmpeg, you can use the command: ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264mp4toannexb OUTPUT.ts Please note that this filter is auto-inserted for MPEG-TS (muxer mpegts ) and raw H.264 (muxer h264 ) output formats. Add -movflags +faststart to your command. Some tips: Use a recent ffmpeg build since development is so active. And I think it allowed a lot of users to watch video who previously weren't able to watch at all. Nothing else can provide the the same quality per bitrate as x264 (the top-class H.264 encoder) while not taking 10,000 years to encode (x265 n VP9). See what audio sample formats (bit depth) an encoder supports with ffmpeg -h. Develop RTSP Live Software H264 AAC Code Live555 Ffmpeg The last one previewed the camera, and the photo has been a probably introduced. I watched a presentation from Facebook where they said they use 5 seconds because the compression benefit over shorter GOP sizes gave users in slow network conditions (which includes massive numbers of people in developing countries like India) a better experience. It supports almost all audio/video codecs (h264, h265, vp8, vp9, aac, opus. According to FFMPEG / DOC / EXAMPLES / DECODINGENCODING.C, VIDEODECODEEXAMPLE decoding H264, The new version of FFMPEG decodes non-complete H264 frames, quantitative read data directly gives AVCODE. Based on the files I've inspected, I'd say they're using a maximum kf interval of 5 seconds. Setting keyframes based on scene changes is still the best thing for compression efficiency, at least for non-live. Anything other than that would require storing the desired location of keyframes and telling the encoder to use those for every resolution version you're encoding. with x264 you can just construct an FFmpeg command with no-scenecut, set the keyint based on the fps, and you're done. There's no need to programmatically interface with the encoder, e.g. Just to add to this, a keyframe every X seconds is probably the standard because it's the most simple to implement. That is usually expressed in as a H.264 level and can be set in FFmpeg with -level parameter (this will make FFmpeg abort encoding of videos which couldn't be played on the device).
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |