سؤال

هل كان لدى أي شخص أي حظ في الحصول على تدفق مشفر للعمل مع البث المباشر HTTP من Apple باستخدام OpenSSL؟ يبدو أنني هناك تقريبًا ولكن الفيديو الخاص بي لا يتم تشغيله ، لكنني لا أحصل على أي أخطاء في Safari أيضًا (مثل "الفيديو غير قابل للعب" أو "ليس لديك إذن لتشغيل هذا الفيديو" عندما حصلت على المفتاح خاطئ).

#bash script:
keyFile="key.txt"
openssl rand 16 > $keyFile
hexKey=$(cat key.txt | hexdump -e '"%x"')
hexIV='0'
openssl aes-128-cbc -e -in $fileName -out $encryptedFileName -p -nosalt -iv ${hexIV}  -K ${hexKey}


#my playlist file:
#EXTM3U
#EXT-X-TARGETDURATION:000020
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="key.txt"
#EXTINF:20, no desc
test.ts.enc
#EXT-X-ENDLIST

كنت أستخدم هذه المستندات كدليل:

http://tools.ietf.org/html/draft-pantos-http-live

هل كانت مفيدة؟

المحلول

حسنًا ، لقد اكتشفت ذلك ... كان أمر hexdump الخاص بي خطأ. يجب أن يكون:

hexKey=$(cat key.txt | hexdump -e '16/1 "%02x"')

نصائح أخرى

ضع في اعتبارك أيضًا ما يلي ، إذا كان لديك أكثر من "قطعة" واحدة ، وكنت تبحث عن بديل لخط أنابيب تشفير Apple. بشكل افتراضي ، تقوم أداة تشفير Apple بتحديث المعلمة IV (متجه التهيئة) لكل قطعة من القطع ، والتي "تزيد من قوة التشفير" ، وفقًا لمواصفات Pantos.

إن تنفيذ هذا يعني فقط أن رقم التسلسل يحتاج إلى ترميز في HEX وتم تمريره كمعلمة -IV لفتح:

#!/bin/bash
keyFile="key.txt"
openssl rand 16 > $keyFile
hexKey=$(cat key.txt | hexdump -e '"%x"')
# hexIV='0'
for i in {0..number_of_TS_chunks}
do
    hexIV=`printf '%032x' $i`
    openssl aes-128-cbc -e -in $fileName -out $encryptedFileName -p -nosalt -iv ${hexIV} -K ${hexKey}
done

إن الجمع بين المعلومات من ثلاثة مما سبق (OP ، إصلاح HexDump و IV المعلومات) أسفر عن حل عمل ل نحن. يسمى:

openssl rand 16 > static.key

key_as_hex=$(cat static.key | hexdump -e '16/1 "%02x"')

for i in {0..9}; do
    init_vector=`printf '%032x' $i`
    openssl aes-128-cbc -e -in video_low_$(($i+1)).ts -out video_low_enc_$(($i+1)).ts -p -nosalt -iv $init_vector -K $key_as_hex
done

لسوء الحظ ، ليس لدي الأدوات اللازمة لتجربة هذا. يبدو أنك اتبعت المواصفات بعناية. شيء واحد أود القيام به هو استنشاق الشبكة تأكد من key.txt يتم تنزيل الملف إلى Safari. سأحاول أيضًا اختيار IV بشكل صريح باستخدام السمة IV لعلامة ext-x-key ، على سبيل المثال

#EXT-X-KEY:METHOD=AES-128,URI="key.txt",IV=0x00000000000000000000000000000000
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top