SSL通信だとHTML5のvideoタグで指定したmp4ファイルが再生出来ない

https(SSL通信)だとhtml5のvideoタグで指定したmp4ファイルが再生できません。(再現性もあります。)

一方、http通信であれば必ず再生できます。


SSLだと再生できないということで、該当サーバの証明書を疑い、

Safariの証明書表示を使って確認してみたのですが「この証明書は有効です」と表示されました。


具体的な現象は以下の通りです。

1、SSL通信の場合に限り、videoタグの再生ボタン(javascriptのvideo.play())をクリックしても再生が開始されない。

 2、画面上には何のエラーメッセージも表示されない。


ただ、再生ボタンを押すたびに以下のログが出力されておりました。

「com.apple.qtkits(861) deny mach-lookup com.apple.SecurityServer」

*http通信の場合は、正常に再生されるためこのログは出ません。


SSL通信の場合、QuickTimeで何か発生しているらしいのですが、

これ以上は解析できない状況です。


この現象の原因は、クライアント側とサーバ側のどちらにあるか?

および解決策をご教授いただきたいです。


なお、出力されたログの詳細は以下の通りでした。

com.apple.qtkits(861) deny mach-lookup com.apple.SecurityServer



Process: com.apple.qtkits [861]

Path: /System/Library/XPCServices/com.apple.qtkitserver.xpc/Contents/MacOS/com.apple.qtkitserver

Load Address: 0x7c000

Identifier: com.apple.qtkitserver

Version: 1 (1.0)

Build Info: 3-QuickTime~2599013000000000

Code Type: i386 (Native)

Parent Process: launchd [1]



Date/Time: 2013-03-05 01:00:22.240 +0900

OS Version: Mac OS X 10.8.2 (12C2034)

Report Version: 8



Thread 0:

0 libsystem_kernel.dylib 0x9680c8aa swtch_pri + 10

1 QuickTimeStreaming 0x03655d79 HTTPDhlr_ReadSYNC + 166

2 QuickTimeStreaming 0x03655645 HTTPDataHandler_ScheduleData64 + 354

3 CarbonCore 0x9455e298 callComponentStorage_4444444 + 63

4 CarbonCore 0x9454fabf CallComponentFunctionCommonWithStorage(char**, ComponentParameters*, long (*)(), unsigned long) + 45

5 CarbonCore 0x9454faff CallComponentFunctionWithStorageProcInfo + 30

6 QuickTimeStreaming 0x0365306f HTTPDataHandler_ComponentDispatch + 81

7 CarbonCore 0x944c9aee CallComponent + 151

8 CarbonCore 0x944c9b48 CallComponentDispatch + 29

9 QuickTime 0x98452ced DataHScheduleData64 + 73

10 QuickTimeMPEG4 0x98351f8b rScheduleData64 + 63

11 QuickTimeMPEG4 0x98351570 EatMPEG4DataRef + 839

12 CarbonCore 0x9455da6e callComponentStorage_4444444444 + 102

13 CarbonCore 0x9454fabf CallComponentFunctionCommonWithStorage(char**, ComponentParameters*, long (*)(), unsigned long) + 45

14 CarbonCore 0x9454faff CallComponentFunctionWithStorageProcInfo + 30

15 QuickTimeMPEG4 0x98351081 EatMPEG4ComponentDispatch + 81

16 CarbonCore 0x944c9aee CallComponent + 151

17 CarbonCore 0x944c9b48 CallComponentDispatch + 29

18 QuickTime 0x98651bb7 MovieImportDataRef + 91

19 QuickTime 0x9851e153 newMovieFromDataRefFromComponent + 655

20 QuickTime 0x9846bd71 NewMovieFromDataRefPriv_priv + 2444

21 QuickTime 0x9846ade5 NewMovieFromProperties_priv + 5886

22 QTKit 0x98ae69e9 -[QTMovie_QuickTime initWithAttributes:error:forParent:] + 5827

23 QTKit 0x98bdc6b6 -[QTMovie_AsyncLoadHelper _mediaHelperFinishedLoadingWithError:] + 178

24 libobjc.A.dylib 0x912135d3 -[NSObject performSelector:withObject:] + 70

25 Foundation 0x97dff0c0 __NSThreadPerformPerform + 395

26 CoreFoundation 0x95e7866f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15

27 CoreFoundation 0x95e78099 __CFRunLoopDoSources0 + 233

28 CoreFoundation 0x95e9de46 __CFRunLoopRun + 934

29 CoreFoundation 0x95e9d63a CFRunLoopRunSpecific + 378

30 CoreFoundation 0x95ead061 CFRunLoopRun + 129

31 XPCService 0x000c4d13 xpc_service_main + 460

32 com.apple.qtkitserver 0x00089276 main + 158

33 libdyld.dylib 0x9144d725 start + 0



Thread 1:

0 libsystem_kernel.dylib 0x9680f9ae kevent + 10

1 libdispatch.dylib 0x960537a9 _dispatch_mach_notify_source_init + 0



Thread 2:

0 libsystem_kernel.dylib 0x9680c7d2 mach_msg_trap + 10

1 liblaunch.dylib 0x9a6b3e58

2 liblaunch.dylib 0x9a6b268e bootstrap_look_up3 + 78

3 liblaunch.dylib 0x9a6b27a4 bootstrap_look_up + 80

4 Security 0x90125a27 Security::MachPlusPlus::Bootstrap::lookup(char const*) const + 57

5 Security 0x90125975 Security::SecurityServer::ClientSession::findSecurityd() + 229

6 Security 0x90125696 Security::SecurityServer::ClientSession::Global::Global() + 92

7 Security 0x9012561e Security::ModuleNexus<Security::SecurityServer::ClientSession::Global>::make() + 30

8 Security 0x900be408 Security::ModuleNexusCommon::create(void* (*)()) + 284

9 Security 0x900dacfb Security::ModuleNexus<Security::SecurityServer::ClientSession::Global>::operator()() + 75

10 Security 0x900daa92 Security::SecurityServer::ClientSession::activate() + 156

11 Security 0x901254d3 Security::MDSSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) + 109

12 Security 0x9012539e mds_DbOpen(long, char const*, cssm_net_address const*, unsigned int, cssm_access_credentials const*, void const*, long*) + 216

13 Security 0x900c20d5 Security::MDSClient::Directory::cdsa() const + 101

14 Security 0x9018e4a7 Security::MDSClient::Directory::dlGetFirst(cssm_query const&, cssm_db_record_attribute_data&, cssm_data*, cssm_db_unique_record*&) + 21

15 Security 0x900c1b0a Security::CssmClient::Table<Security::MDSClient::Common>::startQuery(Security::CssmQuery const&, bool) + 188

16 Security 0x900ed629 Security::KeychainCore::DynamicDLDBList::_load() + 371

17 Security 0x900ed487 Security::KeychainCore::DynamicDLDBList::searchList() + 33

18 Security 0x900ec5f2 Security::KeychainCore::StorageManager::getSearchList(std::vector<Security::KeychainCore::Keychain, std::allocator<Security::KeychainCore::Keychain> >&) + 170

19 Security 0x902254f7 Security::KeychainCore::Trust::searchLibs(bool) + 97

20 Security 0x900f02c3 Security::KeychainCore::Trust::evaluate(bool) + 603

21 Security 0x900eff73 SecTrustEvaluate + 64

22 Security 0x9011db7a sslVerifyCertChain + 106

23 Security 0x9011da5a SSLProcessCertificate + 377

24 Security 0x9014bdb1 SSLProcessHandshakeMessage + 247

25 Security 0x901164fd SSLProcessHandshakeRecord + 221

26 Security 0x901163d5 SSLProcessProtocolMessage + 94

27 Security 0x90115cc6 SSLHandshakeProceed + 368

28 Security 0x90115b40 SSLHandshake + 140

29 CFNetwork 0x90b83b9b SocketStream::_PerformSecurityHandshake_NoLock() + 131

30 CFNetwork 0x90b84db4 SocketStream::socketCallbackReadLocked(SocketStreamSignalHolder*) + 52

31 CFNetwork 0x90b82cd4 SocketStream::socketCallback(__CFSocket*, unsigned long, __CFData const*, void const*) + 140

32 CFNetwork 0x90b82c39 SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, void*) + 97

33 CoreFoundation 0x95ebb18d __CFSocketPerformV0 + 1149

34 CoreFoundation 0x95e7866f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15

35 CoreFoundation 0x95e78099 __CFRunLoopDoSources0 + 233

36 CoreFoundation 0x95e9de46 __CFRunLoopRun + 934

37 CoreFoundation 0x95e9d63a CFRunLoopRunSpecific + 378

38 CoreFoundation 0x95ead061 CFRunLoopRun + 129

39 QuickTime 0x98674e7d QTSNetworkThread_RunThread + 131

40 libsystem_c.dylib 0x93c69557 _pthread_start + 344

41 libsystem_c.dylib 0x93c53cee thread_start + 34



Thread 3:

0 libsystem_kernel.dylib 0x9680c7d2 mach_msg_trap + 10

1 CoreFoundation 0x95e98599 __CFRunLoopServiceMachPort + 185

2 CoreFoundation 0x95e9df7f __CFRunLoopRun + 1247

3 CoreFoundation 0x95e9d63a CFRunLoopRunSpecific + 378

4 CoreFoundation 0x95e9d4ab CFRunLoopRunInMode + 123

5 Foundation 0x97d9e13a +[NSURLConnection(Loader) _resourceLoadLoop:] + 395

6 Foundation 0x97e021d8 -[NSThread main] + 45

7 Foundation 0x97e0215b __NSThread__main__ + 1396

8 libsystem_c.dylib 0x93c69557 _pthread_start + 344

9 libsystem_c.dylib 0x93c53cee thread_start + 34



Thread 4:

0 libsystem_kernel.dylib 0x9680ebe6 __select + 10

1 libsystem_c.dylib 0x93c69557 _pthread_start + 344

2 libsystem_c.dylib 0x93c53cee thread_start + 34



Thread 5:

0 libsystem_kernel.dylib 0x9680c7d2 mach_msg_trap + 10

1 CoreFoundation 0x95e98599 __CFRunLoopServiceMachPort + 185

2 CoreFoundation 0x95e9df7f __CFRunLoopRun + 1247

3 CoreFoundation 0x95e9d63a CFRunLoopRunSpecific + 378

4 CoreFoundation 0x95ead061 CFRunLoopRun + 129

5 com.apple.qtkitserver 0x000a2eee QTMachPortRendererImageReleaserWorkLoop + 200

6 libsystem_c.dylib 0x93c69557 _pthread_start + 344

7 libsystem_c.dylib 0x93c53cee thread_start + 34



Thread 6:

0 libsystem_kernel.dylib 0x9680f0ee __workq_kernreturn + 10

1 libsystem_c.dylib 0x93c6be19 _pthread_wqthread + 448

2 libsystem_c.dylib 0x93c53cca start_wqthread + 30



Thread 7:

0 libsystem_kernel.dylib 0x9680f0ee __workq_kernreturn + 10

1 libsystem_c.dylib 0x93c6be19 _pthread_wqthread + 448

2 libsystem_c.dylib 0x93c53cca start_wqthread + 30



Thread 8:

0 libsystem_kernel.dylib 0x9680f0ee __workq_kernreturn + 10

1 libsystem_c.dylib 0x93c6be19 _pthread_wqthread + 448

2 libsystem_c.dylib 0x93c53cca start_wqthread + 30



Binary Images:

0x7c000 - 0xaaff8 com.apple.qtkitserver (1.0 - 1) <3870A034-825E-3C52-87DA-281FE7143FB5> /System/Library/XPCServices/com.apple.qtkitserver.xpc/Contents/MacOS/com.apple.qtkitserver

0xc3000 - 0xcafff com.apple.XPCService (2.0 - 1) <9FFC5300-3EE9-3420-A384-B49DB9DB315D> /System/Library/PrivateFrameworks/XPCService.framework/Versions/A/XPCService

0x3622000 - 0x3735fff com.apple.QuickTimeStreaming.component (7.7.1 - 2599.13) <39F2588B-D387-34E1-B27C-01B14DE0655D> /System/Library/QuickTime/QuickTimeStreaming.component/Contents/MacOS/QuickTimeStreaming

0x900bd000 - 0x9037dfff com.apple.security (7.0 - 55179.1) <CB470E48-621B-34D9-9E78-8B773358CB6B> /System/Library/Frameworks/Security.framework/Versions/A/Security

0x90b1e000 - 0x90c6bffb com.apple.CFNetwork (596.2.3 - 596.2.3) <B6D93473-7CFA-3B9F-AE76-7BCB0C5CF73C> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork

0x911f5000 - 0x91302057 libobjc.A.dylib (532.2) <FA455371-7395-3D58-A89B-D1520612D1BC> /usr/lib/libobjc.A.dylib

0x9144b000 - 0x9144dfff libdyld.dylib (210.2.3) <05D6FF2A-F09B-309D-95F7-7AF10259C707> /usr/lib/system/libdyld.dylib

0x93c53000 - 0x93d10feb libsystem_c.dylib (825.25) <86676789-5895-32E3-B491-FCA52DB508F2> /usr/lib/system/libsystem_c.dylib

0x9446b000 - 0x94770ff7 com.apple.CoreServices.CarbonCore (1037.3 - 1037.3) <4571EDDC-704A-3FB1-B9A6-59870AA6165F> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore

0x95e66000 - 0x9604eff3 com.apple.CoreFoundation (6.8 - 744.12) <E939CEA0-493C-3233-9983-5070981BB350> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation

0x9604f000 - 0x96061ff7 libdispatch.dylib (228.23) <86EF7D45-2D97-3465-A449-95038AE5DABA> /usr/lib/system/libdispatch.dylib

0x967fa000 - 0x96814ffc libsystem_kernel.dylib (2050.20.9) <561E35E5-E32E-3BFB-9E8B-C977BA6C4F85> /usr/lib/system/libsystem_kernel.dylib

0x97d64000 - 0x98081ff3 com.apple.Foundation (6.8 - 945.11) <03B242AC-519C-3683-AA52-E73536B3D55F> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation

0x982de000 - 0x98395ff3 com.apple.QuickTimeMPEG4.component (7.7.1 - 2599.13) <1B5BA13C-4AB7-333E-9A14-A95EC9E55049> /System/Library/QuickTime/QuickTimeMPEG4.component/Contents/MacOS/QuickTimeMPEG4

0x9844c000 - 0x986c8ff7 com.apple.QuickTime (7.7.1 - 2599.13) <FE609160-E1EF-341D-9B6A-205D3E03A4D2> /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime

0x98ad1000 - 0x98c2effb com.apple.QTKit (7.7.1 - 2599.13) <7C78A76D-8598-3C02-8B00-B39C69899D04> /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit

0x9a6b0000 - 0x9a6b7fff liblaunch.dylib (442.26.2) <310C99F8-0811-314D-9BB9-D0ED6DFA024B> /usr/lib/system/liblaunch.dylib

MacBook Air, OS X Mountain Lion (10.8.2)

投稿日 2013/03/05 13:01

返信
返信: 4

2013/03/05 13:55 tetsuya1225 への返信

tetsuya1225 さんによる書き込み:


https(SSL通信)だとhtml5のvideoタグで指定したmp4ファイルが再生できません。(再現性もあります。)

お尋ね致しますが、html5以前のコンテンツの場合だと再生出来ているのでしょうか?


類似別件の事例ですが、

BuffaloのWebAccessでもSSLに設定されたNASに対してiOSデバイスでSSL通信する際、動画が見れなくなる症状がありますが、その症状に似いているように思えます。

2013/03/07 08:19 蝦夷_オカメの親 への返信

蝦夷_オカメの親 による書き込み:

お尋ね致しますが、html5以前のコンテンツの場合だと再生出来ているのでしょうか?



ご指摘ありがとうございます。

html5(videoタグ)を利用した場合のみ発生する現象なのか切り分けるためにブラウザのアドレスバーに直接URLを指定して確認してみました。

結果は、同様にSSLだと再生できませんでした。


どうやらvideoタグだからという問題ではなかったようです。


いろいろ試行錯誤していたところ、以下のAppleサイトに「byte-range requests(Rangeヘッダ付きリクエスト)に対応していること」がサーバの用件として挙げられていることを見つけました。


https://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html

この記事を参考に、Rangeヘッダに対応するコードを追加したところ(自前のjava Servletコードで配信しておりす。)SSLでも無事再生できるようになりました。


*なぜHTTP通信の場合だと再生出来ていたのかは、未だに判然としていないのですが…😕


蝦夷_オカメの親 による書き込み:


類似別件の事例ですが、

BuffaloのWebAccessでもSSLに設定されたNASに対してiOSデバイスでSSL通信する際、動画が見れなくなる症状がありますが、その症状に似いているように思えます。

この件も同じ原因なのでしょうかね?


とにかく無事解決できました。アドバイス頂き本当にありがとうございました。

2013/03/07 16:00 tetsuya1225 への返信

tetsuya1225 さんによる書き込み:


この件も同じ原因なのでしょうかね?

遠方の知り合いのBuffalo NASにiPhoneで撮影したビデオを配置して、HTTP通信だと辛うじて再生出来ていたのですが、知り合いがHTTPS通信に設定した所、再生する前に警告メッセージが表示され再生出来なかったです。

今は、HTTP通信に戻しています。


SSL通信だと、暗号化されている分、処理が重くなるからではないかと思います。

2014/10/15 01:49 tetsuya1225 への返信

同じ問題で悩んでおります。


Rangeヘッダに対応するコードを追加したところ


とのことですが、具体的にどのようなコードを対応されたのか、教えて頂けませんでしょうか?


当方PHPで「HTTP_RANGE」の値を取得しようとしたのですが、

の値がセットされておらず対応するコードが不明なもので、

なにとぞよろしくお願いいたします。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

SSL通信だとHTML5のvideoタグで指定したmp4ファイルが再生出来ない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。