This preserves changes to fields of AVCodecParameters that get updated during encoding, such as trailing_padding (which may not be known until encoding is complete). --- ffmpeg.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/ffmpeg.c b/ffmpeg.c index d0f247e..0cdc762 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -4255,6 +4255,21 @@ static int transcode(void) term_exit(); + /* update output codec parameters after encoding */ + for (i = 0; i < nb_output_streams; i++) { + ost = output_streams[i]; + if (ost->encoding_needed) { + ret = avcodec_parameters_from_context( + output_files[ost->file_index]->ctx->streams[ost->index]->codecpar, + ost->enc_ctx); + if (ret < 0) { + av_log(ost, AV_LOG_ERROR, "Error copying final codec context: %s\n", av_err2str(ret)); + if (exit_on_error) + exit_program(1); + } + } + } + /* write the trailer if needed and close file */ for (i = 0; i < nb_output_files; i++) { os = output_files[i]->ctx; -- 2.8.0.rc3.226.g39d4020 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel