Hi,
the command of 'ffmpeg -h encoder=libx265' print the following message: Encoder libx265 [libx265 H.265 / HEVC]: General capabilities: delay threads Threading capabilities: auto Supported pixel formats: yuv420p yuv422p yuv444p gbrp yuv420p10le yuv422p10le yuv444p10le gbrp10le gray gray10le libx265 AVOptions: -crf <float> E..V..... set the x265 crf (from -1 to FLT_MAX) (default -1) -forced-idr <boolean> E..V..... if forcing keyframes, force them as IDR frames (default false) -preset <string> E..V..... set the x265 preset -tune <string> E..V..... set the x265 tune parameter -profile <string> E..V..... set the x265 profile -x265-params <string> E..V..... set the x265 configuration using a :-separated list of key=value parameters I build x265 with bitdepth=10, but ffmpeg fails to do transcoding hevc 10bit into hevc 8bit. Its error message is shown as below: x265 [error]: main profile not supported, internal bit depth 10. [libx265 @ 0x4a4dac0] Invalid or incompatible profile set: main. [libx265 @ 0x4a4dac0] Possible profiles: main main10 mainstillpicture msp main-intra main10-intra main444-8 main444-intra main444-stillpicture main422-10 main422-10-intra main444-10 main444-10-intra main12 main12-intra main422-12 main422-12-intra main444-12 main444-12-intra main444-16-intra main444-16-stillpicture Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height I read x265 source code, and find x265_param_apply_profile() will check profile and bitdepth: /* Check if profile bit-depth requirement is exceeded by internal bit depth */ bool bInvalidDepth = false; #if X265_DEPTH > 8 if (!strcmp(profile, "main") || !strcmp(profile, "mainstillpicture") || !strcmp(profile, "msp") || !strcmp(profile, "main444-8") || !strcmp(profile, "main-intra") || !strcmp(profile, "main444-intra") || !strcmp(profile, "main444-stillpicture")) bInvalidDepth = true; #endif #if X265_DEPTH > 10 if (!strcmp(profile, "main10") || !strcmp(profile, "main422-10") || !strcmp(profile, "main444-10") || !strcmp(profile, "main10-intra") || !strcmp(profile, "main422-10-intra") || !strcmp(profile, "main444-10-intra")) bInvalidDepth = true; #endif #if X265_DEPTH > 12 if (!strcmp(profile, "main12") || !strcmp(profile, "main422-12") || !strcmp(profile, "main444-12") || !strcmp(profile, "main12-intra") || !strcmp(profile, "main422-12-intra") || !strcmp(profile, "main444-12-intra")) bInvalidDepth = true; #endif if (bInvalidDepth) { x265_log(param, X265_LOG_ERROR, "%s profile not supported, internal bit depth %d.\n", profile, X265_DEPTH); return -1; } I think x265 with bitdepth=10 can be used to encode yuv420. is that right? Thanks! Regards Andrew At 2019-05-09 18:57:15, "Dennis Mungai" <dmng...@gmail.com> wrote: >On Thu, 9 May 2019 at 13:04, qw <applema...@163.com> wrote: > >> Hi, >> >> >> If I build libx265 with bitdepth=10bit, and link it with ffmpeg, what's >> command line to transcode video with libx265 8/10bit? >> >> >Hmm, add either global option below: > >(a). -bits_per_raw_sample 10 and the encoder will pick both the profile and >the appropriate pixel format for 10-bit encoding, or >(b): -bits_per_raw_sample 8 and the encoder will pick both the profile and >the appropriate pixel format for 8-bit encoding. > >Can you show us the output of ffmpeg -h encoder=libx265 ? > >According to https://ffmpeg.org/ffmpeg-codecs.html#libx265 you can also set >profile restrictions via -profile:v , mapped in the encoder: >https://x265.readthedocs.io/en/default/cli.html#profile-level-tier >_______________________________________________ >ffmpeg-user mailing list >ffmpeg-user@ffmpeg.org >https://ffmpeg.org/mailman/listinfo/ffmpeg-user > >To unsubscribe, visit link above, or email >ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".