2017-04-16 9 views
0

私は角2のアプリを持っています。 Appはhtmlビデオプレーヤーを持ち、英語の字幕(vtt)でビデオを再生することができます。ビデオと字幕ファイルはapache2で提供されているので、dist /からの角束です。英語の字幕は正常に動作していますが、英語以外の言語は動画に表示されません。角2 htmlビデオ英語以外の字幕apache2のサービス

重要な違いは、非enサブにアクセスする場合です。クロムaを使用すると、エンコード権が得られます(期待される文字)。しかし、アクセスされると(トラックタグによって読み込まれる)エンコーディングが間違っています(乱雑な文字です)。

私はreqヘッダーの違いに気付きました:受け入れますが、それが原因だとは思いません。私は(最後の行はちょうど長く、エンコーディングをしようとしている私のApacheのconfigsを含むてる loaded by track loaded by track: vtt

クロムとの直接アクセス:トラックによってロード direct access with chrome direct access with chrome: vtt

に時間はない参照apache ...)。

apache2.conf:

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    DocumentRoot /var/www 
    <Directory /> 
     Options -Indexes FollowSymLinks 
     AllowOverride None 
     Header set Access-Control-Allow-Origin "*" 
    </Directory> 
    <Directory /var/www/> 
     Header set Access-Control-Allow-Origin "*" 
     Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" 
     Options FollowSymLinks MultiViews 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 

    <Directory /var/www/hvp/> 
     Header set Access-Control-Allow-Origin "*" 
     Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" 
     Options FollowSymLinks MultiViews 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/access.log combined 
    Redirect permanent/https://myserver/ 
</VirtualHost> 


<VirtualHost *:443> 
    ServerAdmin [email protected] 

    SSLEngine on 
    SSLCertificateFile /etc/letsencrypt/live/myserver/fullchain.pem 
    SSLCertificateKeyFile /etc/letsencrypt/live/myserver/privkey.pem 

    <Directory /var/www/hvp/> 
     Header set Access-Control-Allow-Origin "*" 
     Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" 
     Options FollowSymLinks MultiViews 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 


    ErrorLog ${APACHE_LOG_DIR}/https_error.log 
    LogLevel warn 
    CustomLog ${APACHE_LOG_DIR}/https_access.log combined 
</VirtualHost> 

何この動作を引き起こす可能性があります:

... 
<IfModule mod_mime.c> 
AddType application/x-javascript .js 
AddType text/css .css 
AddType text/plain .webapp 
AddType text/xml .xml 
AddType application/xml .xml 
AddType application/javascript .js 
AddType application/javascript .json 
</IfModule> 
<IfModule mod_deflate.c> 
SetOutputFilter DEFLATE 
<IfModule mod_setenvif.c> 
    SetEnvIfNoCase Request_URI \.(?:rar|zip)$ no-gzip dont-vary 
    SetEnvIfNoCase Request_URI \.(?:gif|jpg|png)$ no-gzip dont-vary 
    SetEnvIfNoCase Request_URI \.(?:avi|mov|mp4)$ no-gzip dont-vary 
    SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
</IfModule> 
<IfModule mod_headers.c> 
    Header append Vary User-Agent env=!dont-vary 
</IfModule> 
</IfModule> 

AddDefaultCharset utf-8 
<FilesMatch \.vtt$> 
ForceType text/vtt;charset=utf-8 
</FilesMatch> 
AddType text/vtt .vtt 
AddCharset UTF-8 .vtt 

apache2のconfに/ 000-は、default.confのサイトが有効になって?どうも。

答えて

0

私はそれを解決することができました。

まず、ファイルに.vttという接尾辞が付いている場合、chromeはそのファイルを解釈して正しいエンコーディングを検出します。この2つを比較すると無意味でした。現在、サブシステムが動作していて、ネットワークタブを見ると、とにかく乱雑な文字が表示されますが、プレーヤーでは機能しています。

第2に、時間の定義でカンマをドットで置き換えることは、webstormでの編集とvlcでの結果の確認に役立ちました。

実際の問題は、時間defのドットではなく、字幕ファイルのエンコードおよび/またはカンマです。

関連する問題