Nicolas George (2021-07-07)> Some codecs have two modes: one with global extradata used in formats > optimized for storage, one without used in formats optimized for > streaming. You are probably getting the latter and trying to use where > the former is needed. > > You probably need to insert one of the mp4toannexb bitstream filters.
That was an awesome idea, 'coz it both sounds reasonable and correlates with what I've dug up in the ffmpeg sources so far. Nevertheless, same error -- https://gist.github.com/MasterAler/d8639ed7bce6c9b4f3bc9be6dfc7e98d The most important part is the following: ```cpp if (codec_id == AV_CODEC_ID_H264 || codec_id == AV_CODEC_ID_HEVC) { const char *filtername = codec_id == AV_CODEC_ID_H264 ? "h264_mp4toannexb" : "hevc_mp4toannexb"; const auto *bsf = av_bsf_get_by_name(filtername); if (!bsf) { std::cerr << "failed to find bit stream filter" << std::endl; return; } AVBSFContext *bsf_ctx_raw = nullptr; err = av_bsf_alloc(bsf, &bsf_ctx_raw); if (err < 0) { std::cerr << "failed to allocate bit stream filter context" << std::endl; return; } bsf_ctx = std::unique_ptr<AVBSFContext, void (*)(AVBSFContext *)>{bsf_ctx_raw, [](AVBSFContext *p) { av_bsf_free(&p); }}; } ``` Then I try something as straightforward as av_bsf_send_packet + av_bsf_receive_packet, from my experience that's a working approach. Still "Invalid data found when processing input" =(( Any ideas, please? (( ________ Regards, Alex
_______________________________________________ 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".
