Hello! Our software (cinelerra-gg) had some code for using bitstream filtering at muxing stage, but it was not functional (crashes)
I tried to use this code as example https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/tee.c and added initialization (av_bsf_init()) now simple filters like dump_extra seems to work (file size increases) but complex ones like h264_metadata get their string (they complain if option unknown) but not doing their job? cingg uses av_bsf_list_parse_str line 3092 here https://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=blob;f=cinelerra-5.1/cinelerra/ffmpeg.C;h=2d441a79f6c2bcb244362d024305140cb61c6723;hb=HEAD should I also manually put bitstream filter options in av_dictionary? Or do something else non-obvious? Note, right now this code lacks initialization, I just send patch to our mail list. --- cinelerra-5.1/cinelerra/ffmpeg.C | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ ffmpeg.C index 2d441a79..ee3edba5 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.C +++ b/cinelerra-5.1/cinelerra/ffmpeg.C @@ -585,6 +585,10 @@ int FFStream::write_packet(FFPacket &pkt) ret = av_interleaved_write_frame(ffmpeg->fmt_ctx, pkt); } else { + bsfc->time_base_in = st->time_base; + avcodec_parameters_copy(bsfc->par_in, st->codecpar); + av_bsf_init(bsfc); + ret = av_bsf_send_packet(bsfc, pkt); while( ret >= 0 ) { FFPacket bs; ====
_______________________________________________ Libav-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
