Extract HEVC bitstream with ffmpeg

20,448

Solution 1

So far, the best solution is to use MKVToolNix.

mkvextract.exe tracks hevc.mkv -f 0:bitstream.265

Solution 2

The raw bitstream of H.264/H.265 is typically called the Annex B format. You can create those files with the following FFmpeg commands:

H.265 to Annex B

ffmpeg -i in.mkv -c:v copy -bsf hevc_mp4toannexb out.h265

does the trick with ffmpeg and H.265/HEVC.

H.264 to Annex B

For H.264 it's slightly different:

ffmpeg -i in.mkv -c:v copy -bsf h264_mp4toannexb out.h264

Solution 3

I tried the ffmpeg solution from Sebastian, but it didn't work for me. Here is what I did to get just the H.265 bitstream. I did see that some people suggested setting the output file extension to .bin, but I like h264/h265 as it makes it more clear what kind of bitstream the file contains.

H.265 to Annex B

ffmpeg -i test.mkv -c:v copy -bsf hevc_mp4toannexb -f hevc test.h265

H.264 to Annex B

ffmpeg -i test.mkv -c:v copy -bsf h264_mp4toannexb -f h264 test.h264

NOTE: This also works for .mov files and probably for other formats as well.

Share:
20,448

Related videos on Youtube

Mark
Author by

Mark

Updated on September 18, 2022

Comments

  • Mark
    Mark almost 2 years

    I would like to extract the raw .265 bitstream from HEVC mkv file. I use this:

    ffmpeg.exe -i hevc.mkv -an -vcodec copy -f hevc bitstream.265

    I got this error:

    Requested output format 'hevc' is not a suitable output format

    However, HEVC demuxer is already implemented and I can extract it to uncompressed raw YUV. ffmpeg -formats:

     File formats:
     D. = Demuxing supported
     .E = Muxing supported
    D  hevc            raw HEVC video
    

    What is wrong here?

    • slhck
      slhck over 10 years
      I think you just need a -f rawvideo. Since the codec is copied, that should do it.
    • Mark
      Mark over 10 years
      Well it does something, but the result is improper stream, i.e. can't be decoded with HM decoder 12.0 (TappDecoder.exe)
  • slhck
    slhck almost 7 years
    The OP asked how to extract the raw stream, not how to mux it into another container.
  • Scott - Слава Україні
    Scott - Слава Україні over 5 years
    So, you answer is identical to Sebastian Annies’s answer except you added back in the -h option that was in the question already (even though dstob recommended leaving it out)?  If you’re going to compare your answer to somebody else’s answer, compare your answer to the other answer (i.e., describe how it’s different, and why).
  • arndtc
    arndtc over 5 years
    Thanks for the feedback, but I did try without the -h, but ffmpeg kept giving an error. I found that frustrating so I posted the solution that worked for me.