سؤال

لقد حصلت على كاميرا Sony Network (SNC-RZ25N) التي أحاول يائسة للحصول على بيانات من بعض التنسيقات ذات معنى. تقول الوثائق إنها ترسل بيانات MPEG-4 RAW ، ولكنها ليست أكثر تحديداً من. يمكنني التقاط شريحة من الدفق باستخدام حليقة ( http://techhead.biz/media/tsv.m4v ) وسوف يتم تشغيله باستخدام VLC و ffplay (على الرغم من أنه يلعب بسرعة كبيرة في ffplay).

بعد يوم ونصف من العبث ، اكتشفت أنه لا يمكنني استخدام FFMPEG لتحويل هذا الدفق مباشرة. لأحد ، فإن الطريقة الوحيدة التي تقبل FFMPEG بيانات الأنابيب كمدخلات (وأنا على علم بها) هي في تنسيق "YUV4MPEGPIPE".

حاولت الأنابيب إلى FFMPEG باستخدام "M4V" كتنسيق محدد ، لكن يبدو أنه يريد قراءة الدفق بالكامل قبل أن يبدأ المعالجة.

أي شخص يعرف كيف يمكنني فعل هذا؟ باستخدام أدوات سطر الأوامر؟ مكتبات المصادر المفتوحة في أي لغة برمجة؟ حلول أبسط مفضلة ، ولكن أي حل عمل سيكون رائعًا.

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

المحلول

يبدو أن Mplayer يمكنه تشغيل ملف M4V الخاص بك عبر HTTP ، وعلى الأقل مع ملف نموذجك يعمل:

mkfifo /tmp/fifo
mplayer -benchmark -vo yuv4mpeg:file=/tmp/fifo http://techhead.biz/media/tsv.m4v
ffmpeg -f yuv4mpegpipe -i /tmp/fifo -vcodec libx264 -vpre libx264-hq /tmp/foo.mp4

(-يخبر Benchmark Mplayer بتجاهل مدة الإطار ، قد تكون أو لا تكون مطلوبة)

بدلاً من ذلك ، مع فقط mencoder:

mencoder -o /tmp/foo.avi -of avi -ovc x264 -x264encopts bitrate=250 http://techhead.biz/media/tsv.m4v

أخيرًا ، إذا كنت لا تحتاج فعليًا إلى H.264 ، فيمكنك فقط وضع بيانات MPEG-ES الحالية في أي تنسيق حاوية تحتاجه ؛ قد يكون MP4Box قادرًا على القيام بذلك ، ويمكن FFMPEG و Mencoder إذا دعما تنسيق الإخراج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top