Extract HEVC bitstream with ffmpeg
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?
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
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.