8
votes

Comment puis-je utiliser bitmapdata.draw avec netstream.appendbytes?


3 commentaires

Je suis dans le même bateau que vous étiez exactement, les fichiers provenaient d'un emplacement distant. J'utilisais l'objet Urlstream pour extraire les données dans et appendez comme vous le souhaitez que vous souhaitez modifier, localement, les en-têtes ... tout réussi, mais avant d'essayer de catter. Essentiellement tiré dans le pied. Avez-vous pu surmonter les problèmes ou avoir des idées sur la manière de l'accomplir avec un serveur distant? Je tire actuellement que FMS 4.5 pour voir si cela résout le problème. Les docs pointent également dans la direction de l'accès au flash ...


Après une très longue nuit, j'ai simplement découvert qu'avec Streaming dynamique HTTP (HDS), l'utilisation de la méthode APPENDBYTES (), qu'il n'y a pas de moyen possible d'effectuer la manipulation de niveau de pixels sur la vidéo décodée. Une possibilité de laisser passer un piratage d'un second secondaire dans les fichiers F4F, mais cela dépend vraiment de quelles vérifications sont effectuées et si l'AVM ignore tout simplement tous les drapeaux de stratégie dans le modèle de diffusion en streaming des APPENDBES ...


Avez-vous déjà trouvé une solution pour cela? Je cours dans le même problème.


7 Réponses :


0
votes

essayez de définir netstream.checkppolicyfile = true code> avant d'appeler la fonction lire () code> fonction.

comme ceci: p>

_ns.checkPolicyFile = true;
_ns.play(null);


3 commentaires

Cela n'aide pas. Le problème est qu'il n'y a pas de serveur, il n'existe donc nulle part que de charger le fichier de stratégie. Le fichier est chargé localement (la machine peut même être hors ligne).


Ok, mon mauvais. Êtes-vous en train de diffuser la vidéo via RTMFP? Dans ce cas, j'ai trouvé du fil que vous pourriez trouver intéressant. forums.adobe.com/thread/16862


Merci pour le lien. Cependant, la méthode Netstream.Appendbytes fonctionne uniquement avec le format FLV. Je lis fondamentalement un fichier FLV du disque avec un filtream, en modifiant un peu, puis envoyez les octets à la Netstream avec les APPENDBYTES ().



0
votes

J'ai une solution pour vous débarrasser de l'erreur de sandbox lors de la tentative de dessiner un netstream.appendbyte () contenu.

Le SWF récupère un bac à sable car il recherche un fichier croisé à l'adresse indiquée par vous : netstream.play (null) . Il cherche quelque chose qui n'existe pas.

Eh bien, la solution consiste à lire une fausse URL vidéo, comme " NetStream.play (http://myserv.com/video.flv) " avec un véritable fichier croisé à ce sujet, et Après cela, il vous suffit de charger la vidéo que vous voulez grâce à la fonction APPENDBYTES.

Le SWF est dupe!

aussi étrange que cela sonne, ça marche pour moi :-)


2 commentaires

Merci je jouerai avec cela. Cependant, j'ai besoin d'une solution qui fonctionnera hors ligne. Pour que cette méthode fonctionne correctement, une sorte de serveur local serait probablement nécessaire.


Cela ne fonctionne pas: la documentation indique clairement qu'Appendbytes () ne peut être appelé que lorsque N.Play () est appelé avec NULL. Si cela est fait autrement, je reçois un message d'erreur.



0
votes

Vous ne pouvez pas prendre un instantané de vidéo ou d'audio à partir d'un flux RTMP, à moins que les paramètres latéraux du serveur appelés streamvideosampleacccess ou streamaudiosampeacs sont définis sur true ou défini comme ce streamvideosampleeccess / stramvideosampleacs. Je n'ai pas découvert un moyen de le faire sans avoir accès au côté du serveur FMS.


2 commentaires

Voici un lien vers la documentation Adobe à propos de Aide .adobe.com / EN_US / flashMediaserver / 3.5_ss_asd / ...


Ce n'est pas un flux de rampe d'un serveur. Ces données provenaient d'un fichier local sur la machine d'utilisateurs.



1
votes

Je pense que une autre solution consiste à utiliser _ns.play (chemin) et non à utiliser _ns.appendbytes () . .


2 commentaires

C'est vrai, mais alors vous n'avez plus accès aux octets qui est nécessaire dans mon cas.


Cela ne fonctionne pas non plus, je joue une vidéo locale sur iOS avec cette méthode. Malheureusement, je reçois toujours l'erreur.



0
votes

Essayez de placer l'objet vidéo dans un MOVIECLIP et utilisez bit.draw (_movieclipinstanName); au lieu de l'objet vidéo. J'espère que ça marche.


0 commentaires

-1
votes

On dirait que vous essayez d'appeler la méthode bitmapdata.Draw () sur une vidéo qui n'est pas chargée ou lorsque l'objet Netstream est null.

Correction possible: attendez que le Netstream.buffer.Full NetStatus soit expédié avant d'appeler Draw ()


0 commentaires

0
votes

Je sais que cette question est vraiment ancienne ... mais c'est toujours un problème que je viens de faire face et je sais que les autres vont aussi ... alors je voulais poster le lien vers l'autre question de pile où j'ai posté le bogue Adobe et la solution de contournement pour le faire fonctionner.

Solution de contournement pour bug sur une question de pile en double


0 commentaires