Video Station 트랜스코딩 활성화를 위한 시도, 그리고 (일부) 성공
ESXi ARPL DS918+에 타오바오에서 구매한 정품 시리얼을 입력하여 잘 사용하고 있었는데, 7.1.1-42951을 올리고부터 뭔가 꼬인 건지 Video Station에서 동영상 재생 중 화질을 변경하거나 HEVC 동영상을 재생하면
위와 같은 메시지가 뜨면서 트랜스코딩이 되지 않는 현상이 발생했습니다.
오프라인 트랜스코딩을 돌려도
위의 메시지가 뜨면서 불가능했습니다.
/var/log/messages에는 아무런 로그가 찍히지 않아 원인을 알 수 없었는데, 최근에 이것저것 찾아보던 중 /var/packages/VideoStation/var/log 폴더에 videostation.log 파일이 따로 존재하는 것을 확인할 수 있었습니다.
videostation.log 파일의 일부입니다. /var/packages/VideoStation/target/etc/TransInfo_VAAPI_HLS 파일에 braswell_1 항목이 없다고 하네요.
root@Alanimdeo-DSM:/var/packages/VideoStation/target/etc# cat TransInfo_VAAPI_HLS
{
"braswell_2":{
"h264_serial":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
},
"hevc_serial":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
},
"others":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
}
}
}
파일을 직접 확인해 보니, braswell_1은 없고, braswell_2가 있더라고요. 그래서 아래에 이름이 braswell_1이고 값은 braswell_2와 똑같은 새 항목을 생성해 주었습니다.
root@Alanimdeo-DSM:/var/packages/VideoStation/target/etc# cat TransInfo_VAAPI_HLS
{
"braswell_1":{
"h264_serial":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
},
"hevc_serial":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
},
"others":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
}
},
"braswell_2":{
"h264_serial":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
},
"hevc_serial":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
},
"others":{
"480p":{
"high":"mpegts_hd480_h264_vaapi_vb4500_mp3_ab96",
"medium":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd480_h264_vaapi_vb1000_mp3_ab96",
"appletv_high":"mpegts_hd480_h264_vaapi_vb8000_mp3_ab96"
},
"720p":{
"high":"mpegts_hd720_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd720_h264_vaapi_vb2500_mp3_ab128",
"appletv_high":"mpegts_hd720_h264_vaapi_vb8000_mp3_ab128"
},
"1080p":{
"fhd_high_bitrate":"mpegts_hd1080_h264_vaapi_vb15000_mp3_ab128",
"high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"medium":"mpegts_hd720_h264_vaapi_vb1000_mp3_ab128",
"low":"mpegts_hd480_h264_vaapi_vb500_mp3_ab96",
"roku_high":"mpegts_hd1080_h264_vaapi_vb4500_mp3_ab128",
"appletv_high":"mpegts_hd1080_h264_vaapi_vb8000_mp3_ab128"
}
}
}
}
위와 같이 파일을 수정해 주고, 아이폰에서 찍은 HEVC 영상으로 다시 트랜스코딩을 시도했더니..
성공! 마법같이 잘 작동합니다.
하지만, 제목이 (일부) 성공인 이유는..
직접 재생할 때는 코덱이 뭐든 잘 재생되는데, 오프라인 트랜스코딩을 돌릴 때는 H.264 코덱만 트랜스코딩이 가능하고 HEVC 코덱은 트랜스코딩이 안 됩니다.
아직은 연구가 더 필요하겠습니다.
와,, 좋은 트러블슈팅 글이네요 같은증상이신분들께 완전 꿀팁일듯합니다
살짝 환경을 타는 것 같습니다.
DSM버전이나, 어떤 코덱이 설치 되어있는지나....
저는 안 되는군요.
혹시 아이폰에서 4K - 60fps(고효율성)으로 세팅하고 촬영한 영상도 플레이가 되는지요?
플레이되는 영상은 아이폰에서 4K - 24fps 로 촬영한 영상이 아닌지요?
방금 4K 60fps 고효율성으로 세팅하고 재생해봤는데, 얘는 또 신기하게 플레이어 재생도 되고, 오프라인 트랜스코딩도 잘 작동합니다. 신기하네요...
엉?~ 오프라인 트랜스코딩 건지셨네요^^
"코덱이 잘 구비되어 있다" 그런 차이가 있다 정도로 생각해야겠습니다.
cmt alert