On 28-04-2019 04:15 PM, Nicolas George wrote:
Gyan (12019-04-28):
Corrupt streams in sufficiently intact containers (MP4, TS) so they can be
demuxed but decoder context fields are incomplete/invalid, so ffmpeg won't
streamcopy-mux them.

Depending on the exact situation, I would use a repair or analysis tool to
check them or supply an alternate esds..etc
And you want to just dump the packets payload in a file? With the ffmpeg
command-line?

Then I suggest to implement that as a ffmpeg option:

        ffmpeg -dump_stream:0 stream0.bin -i damaged.mp4 -f null -
I'll try this but I don't think the command as presented will work because

a) there's no codec option set, so ffmpeg has to decode frames and that will fail for damaged streams. But this can be quickly remedied by adding -c copy

b) ffmpeg will call avformat_write_header for the output, which will likely fail because of the aforementioned codec parameter issues. When that happens, ffmpeg will exit and only the packets demuxed and flushed up to that point will be present in the dumped file. This could possibly be averted by providing a valid dummy input and mapping only that to the output. However, I believe ffmpeg will then exit when that output is marked as finished, but the dumped stream may not be because the main transcode() loop isn't sensitive to it.

The pipeline for dumping damaged streams is identical to dumping valid streams except for the part when timestamps are regulated and codec fields validated for the target muxer, which is what my patch disables for a single muxer that doesn't need them. I don't see much (any?) "wasted" processing with my patch, relative to streamcopying a valid stream.

Gyan
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to