-
Notifications
You must be signed in to change notification settings - Fork 506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HEVC HLS packing throws errors #587
Comments
HLS Manifest: Generated with https://github.com/google/shaka-packager version b85e5c9-release#EXT-X-MEDIA:TYPE=AUDIO,URI="audio_aac.m3u8",GROUP-ID="default-audio-group",LANGUAGE="en",NAME="stream_6",AUTOSELECT=YES,CHANNELS="2" |
@teb It is present in the HLS output actually:
|
Yes its, there! Works on VLC, but |
Validator says : "errorComment" : "Playlist codec type doesn't match content codec type" |
@teb Can you replace "hev1" with "hvc1" in playlist to see if it works? Can you also provide a sample stream to us? You can email or share with shaka-packager-issues@google.com if it cannot be shared publicly. |
so, u mean hvc1.2.4.L63.90 ? |
Yes. |
Validator was suddenly happy at least.. i need to wait til monday to re-confirm all our players tho |
I can confirm that HEVC for HLS works fine, both in the validator and also with IOS 10.x++ for AppleTV, Iphones, ipads etc.. + safari as long as we use HVC1 in the manifest.. |
@teb There are more than one codec ids for avc as well actually (avc1, avc2, avc3, avc4 etc). avc1 and hvc1 are used to indicate standard avc/hevc streams without parameter sets in the samples; while avc3 and hev1 have parameter sets in the samples. This is a bug in Shaka Packager. We'll fix it. Can you also provide a sample stream to us, which can speed up the fix? You can email or share with shaka-packager-issues@google.com if it cannot be shared publicly. |
email sent! I also noticed that the "segmentDurationTag" is most of the time 4 sec, as configured, but sometimes its 1.5 sec, 2.6 sec etc... Know why? { |
@teb New segments start at the key frame only, so it could be of an unusual keyframe. |
All segments start with an IDR frame, the rest are normal i-frames due to scenecut.. Im using a 4 sec gop structure so its bound to happen with some "extra" i-frames.. Looks like the packager is either missreading the gop structure.. |
@teb Also with our encoder the different quality profiles sometimes have different i-frames (IDR-s are the same in every profile). |
Command:
./packager --segment_duration=4
in=test_aac.mp4,stream=audio,output=/mnt/s/temp/out/audio_aac.mp4,playlist_name=audio_aac.m3u8,lang=eng
in=test_ec3.mp4,stream=audio,output=/mnt/s/temp/out/audio_ec3.mp4,playlist_name=audio_ec3.m3u8,lang=eng
in=test_HEVC_360x180_crf23_P1.mp4,stream=video,output=/mnt/s/temp/out/hevc_180p.mp4,playlist_name=hevc_180p.m3u8
in=test_HEVC_640x360_crf23_P2.mp4,stream=video,output=/mnt/s/temp/out/hevc_360p.mp4,playlist_name=hevc_360p.m3u8
in=test_HEVC_960x540_crf23_P3.mp4,stream=video,output=/mnt/s/temp/out/hevc_540p.mp4,playlist_name=hevc_540p.m3u8
in=test_HEVC_1280x720_crf23_P4.mp4,stream=video,output=/mnt/s/temp/out/hevc_720p.mp4,playlist_name=hevc_720p.m3u8
in=test_HEVC_1920x1080_crf23_P5.mp4,stream=video,output=/mnt/s/temp/out/hevc_1080p.mp4,playlist_name=hevc_1080p.m3u8
in=test_HEVC_1920x1080_crf20_P6.mp4,stream=video,output=/mnt/s/temp/out/hevc_1080pHQ.mp4,playlist_name=hevc_1080pHQ.m3u8
--hls_master_playlist_output /mnt/s/temp/out/h265_master.m3u8
--mpd_output /mnt/s/temp/out/h265.mpd
What happens instead?
Shakalog:
0503/121822:ERROR:box_definitions.cc(627)] Not implemented reached in virtual bool shaka::media::mp4::SampleDescription::ReadWriteInternal(shaka::media::mp4::BoxBuffer *)SampleDecryption type 0 is not handled. Skipping.
[0503/121822:ERROR:box_definitions.cc(627)] Not implemented reached in virtual bool shaka::media::mp4::SampleDescription::ReadWriteInternal(shaka::media::mp4::BoxBuffer *)SampleDecryption type 0 is not handled. Skipping.
[0503/121822:ERROR:box_definitions.cc(2091)] Not implemented reached in virtual bool shaka::media::mp4::MediaInformation::ReadWriteInternal(shaka::media::mp4::BoxBuffer *)
[0503/121822:ERROR:box_definitions.cc(2091)] Not implemented reached in virtual bool shaka::media::mp4::MediaInformation::ReadWriteInternal(shaka::media::mp4::BoxBuffer *)
[0503/121822:ERROR:box_definitions.cc(627)] Not implemented reached in virtual bool shaka::media::mp4::SampleDescription::ReadWriteInternal(shaka::media::mp4::BoxBuffer *)SampleDecryption type 0 is not handled. Skipping.
Manifest seems ok tho but the audio parts was missing from both HLS and Dash manifests..
Validator:
{
"dataVersion" : 1.1000000000000001,
"url" : "h265_master.m3u8",
"messages" : [
{
"errorParserCode" : -16237,
"errorComment" : "a URI found without leading a EXTINF / EXT-X-STREAM-INF.",
"errorDomain" : "CoreMediaErrorDomain",
"errorStatusCode" : -12642,
"errorRequirementLevel" : 1,
"errorParserLine" : "audio_aac.m3u8"
},
{
"errorParserCode" : -16237,
"errorComment" : "a URI found without leading a EXTINF / EXT-X-STREAM-INF.",
"errorDomain" : "CoreMediaErrorDomain",
"errorStatusCode" : -12642,
"errorRequirementLevel" : 1,
"errorParserLine" : "audio_ec3.m3u8"
},
{
"errorComment" : "Playlist codec type doesn't match content codec type",
"errorDomain" : "ValidatorErrorDomain",
"errorReferenceDataID" : 5,
"errorStatusCode" : -50083,
"errorRequirementLevel" : 1,
"errorDetail" : "Playlist: hev1, Content: hvc1"
},
{
"errorComment" : "Playlist codec type doesn't match content codec type",
"errorDomain" : "ValidatorErrorDomain",
"errorReferenceDataID" : 3,
"errorStatusCode" : -50083,
"errorRequirementLevel" : 1,
"errorDetail" : "Playlist: hev1, Content: hvc1"
},
{
"errorComment" : "Playlist codec type doesn't match content codec type",
"errorDomain" : "ValidatorErrorDomain",
"errorReferenceDataID" : 6,
"errorStatusCode" : -50083,
"errorRequirementLevel" : 1,
"errorDetail" : "Playlist: hev1, Content: hvc1"
},
{
"errorComment" : "Playlist codec type doesn't match content codec type",
"errorDomain" : "ValidatorErrorDomain",
"errorReferenceDataID" : 8,
"errorStatusCode" : -50083,
"errorRequirementLevel" : 1,
"errorDetail" : "Playlist: hev1, Content: hvc1"
},
{
"errorComment" : "Playlist codec type doesn't match content codec type",
"errorDomain" : "ValidatorErrorDomain",
"errorReferenceDataID" : 4,
"errorStatusCode" : -50083,
"errorRequirementLevel" : 1,
"errorDetail" : "Playlist: hev1, Content: hvc1"
},
{
"errorComment" : "Playlist codec type doesn't match content codec type",
"errorDomain" : "ValidatorErrorDomain",
"errorReferenceDataID" : 7,
"errorStatusCode" : -50083,
"errorRequirementLevel" : 1,
"errorDetail" : "Playlist: hev1, Content: hvc1"
}
],
"variants" : [
{
"playlistType" : "VOD",
"processedSegmentsCount" : 1842,
"url" : "hevc_180p.m3u8",
"hasDiscSequenceTag" : false,
"measuredMeanBitrate" : 219290,
"parsedSegmentsCount" : 1842,
"playlistMeanBitrate" : 667508,
"hasEndTag" : true,
"playlistCodecs" : "hev1.2.4.L63.90,ec-3,mp4a.40.2",
"playlistResolutionHeight" : 270,
"measuredMaxBitrate" : 982138,
"independentSegments" : false,
"audioGroup" : {
"playlistGroupID" : "default-audio-group",
"renditions" : [
{
"url" : "audio_aac.m3u8",
"persistentID" : 0
},
{
"url" : "audio_ec3.m3u8",
"persistentID" : 1
}
]
},
"closedCaptionGroup" : {
"playlistGroupID" : "CC",
"renditions" : [
{
"persistentID" : 2
}
]
},
"iframeOnly" : false,
"playlistKind" : "media",
"playlistMaxBitrate" : 1433996,
"playlistResolutionWidth" : 480,
"discontinuities" : [
{
"segments" : [
{
"discontinuityDomain" : 0,
"segmentByteRangeLength" : 17989,
"format" : "fragmentedMP4",
"url" : "hevc_180p.mp4",
"dataID" : 5728,
"videoFrameRate" : 25,
"videoStartsWithIDR" : true,
"segmentDurationTag" : 4,
"mediaSequence" : 0,
"startTime" : -0.080000000000000002,
"segmentByteRangeOffset" : 25173
},
{
"discontinuityDomain" : 0,
"segmentByteRangeLength" : 16099,
"format" : "fragmentedMP4",
"url" : "hevc_180p.mp4",
"dataID" : 5730,
"videoFrameRate" : 25,
"videoStartsWithIDR" : true,
"segmentDurationTag" : 4,
"mediaSequence" : 1,
"startTime" : 3.9199999999999999,
"segmentByteRangeOffset" : 43162
},
{
"discontinuityDomain" : 0,
"segmentByteRangeLength" : 7974,
"format" : "fragmentedMP4",
"url" : "hevc_180p.mp4",
"dataID" : 5731,
"videoFrameRate" : 25,
"videoStartsWithIDR" : true,
"segmentDurationTag" : 4,
"mediaSequence" : 2,
"startTime" : 7.9199999999999999,
"segmentByteRangeOffset" : 59261
The text was updated successfully, but these errors were encountered: