سؤال

أبحث عن طريقة لتدوير مقاطع الفيديو التي تم التقاطها باستخدام جهاز Nexus 4 الخاص بي على نظام Debian Wheezy.يتم تصوير مقاطع الفيديو في الوضع الرأسي وأرغب في تدويرها إلى الوضع الأفقي.ويفضل أن يكون التدوير مدفوعًا بسطر الأوامر.

لقد وجدت العديد من الأسئلة السابقة التي تلمح إلى حل جيد ولكن لا يبدو أنني تمكنت من تفعيلها.

في البداية كان هناك هذا السؤال:تدوير مقاطع الفيديو باستخدام FFmpeg

لكنه يشير إلى أن ffmpeg قديم وأنه يجب علي استخدام avconv.لقد وجدت هذا السؤال بالتفصيل الطريق للمضي قدما.https://askubuntu.com/questions/269429/how-can-i-rotate-video-by-180-degrees-with-avconv

هذا جعلني أستخدم الأمر التالي:

avconv -i original.mp4 -vf "transpose=1" -codec:v libx264 -preset slow -crf 25 -codec:a copy flipped.mp4

ومع ذلك، يعد هذا بطيئًا للغاية (استغرق الاختبار الأخير أكثر من 6 ساعات لأقل من 3 دقائق من اللقطات) ولا يؤدي إلى فيلم قابل للتشغيل.أحصل أيضًا على خطأ في تسجيل الإخراج الذي ينص على حد المستوى Mb Rate>.

هل هناك مشكلة هنا في إعادة الترميز؟هل يجب علي أولاً إعادة تشفير مقاطع الفيديو من هاتفي إلى تشفير آخر أكثر "قابلية للتطبيق" قبل تطبيق عمليات التدوير؟أم أنني أفتقد نقطة أخرى مهمة؟

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

المحلول

إذا كنت ترغب فقط في تغيير البيانات الوصفية بحيث تعتبر MediaPlayers التي تنظر في العلم في تشغيل الملف المستورد، جرب شيئا مثل:

giveacodicetagpre.

كما تم العثور على في مكان آخر على Stackoverflow .

نصائح أخرى

دوران= 0 تم إصلاح مشكلتي.بدأت تسجيل الفيديو في وضع عمودي، أدركت خطأي وتحويل هاتفي على الفور إلى المناظر الطبيعية لمتابعة التسجيل.كان جهاز iPhone الخاص بي قد يمثل الفيديو كتصوير للفيديو بأكمله.

giveacodicetagpre.

تم إصلاحه.

FFmpeg وبرامج مماثلة تغيير البيانات الوصفية حتى مع -map_metadata خيار. exiftool يمكنه قراءة مصفوفة التدوير وعلم التدوير، ومنذ الإصدار 10.89، يمكنك أيضًا كتابتها كما هو موضح أدناه.

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

التدوير الحقيقي بدون فقدان لملفات MP4:

  • افتح mp4 باستخدام محرر سداسي عشري وابحث عن vide للعثور على البيانات الوصفية لمسار الفيديو
  • بعض الصفوف أعلاه (لملفاتي في الغالب 9، وأحيانًا 12) يجب أن تراها trak...\tkhd
  • بينهما يجب أن يكون هناك @ علامة (عرافة 40)
  • في الصفين قبل ذلك يتم تخزين مصفوفة التناوب
  • لا دوران:

    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 180°:

    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 90 درجة الأسلحة الكيميائية:

    00 00 00 00 00 01 00 00 00 00 00 00 FF FF 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40 
    
  • 90 درجة سم مكعب:

    00 00 00 00 FF FF 00 00 00 00 00 00 00 01 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40
    

قم بتغيير الملف حسب حاجتك إليه، ويجب تدويره في المشغلات التي تدعم علامة التدوير (معظم المشغلات الحالية تفعل ذلك).

إذا كان الفيديو الخاص بك يحتوي على صوت استريو، فمن الواضح أن هذا لم يتم تبديله، لذلك إذا كنت تريد أن يتطابق الصوت مع دوران الفيديو (180 درجة)، فستحتاج إلى تبديل القنوات اليسرى واليمنى.

هناك عدة أمور تطرقت إليها في سؤالك:

  1. ليس هناك أي احتمال تقريبًا أن تتمكن من التدوير دون إعادة التشفير.لقد تمت الإشارة بالفعل إلى الاستثناء لهذه القاعدة (برنامج ترميز MJPEG)، ولكن من غير المحتمل أنك تستخدمه، لذا فهو يتجاوز نطاق هذا السؤال.سأذكر أن سبب هذه القدرة هو أنه يمكن تحويل JPEG عبر البيانات الوصفية.وبالتالي، إذا تمكنت من العثور على حاوية تحتوي على تدوير البيانات الوصفية، فستتمكن من التدوير، ولكن لا يوجد أي منها (أو منتشر على نطاق واسع بما فيه الكفاية) حتى الآن.
  2. إذا استغرق الأمر ساعات لتدوير وإعادة ترميز 3 دقائق من الفيديو، فمن الممكن أن تكمن المشكلة في ملف ضخم دقة.وأنا أعني ضخم!هل يمكنك من فضلك تقديم مخرجات avprobe original.mp4 حتى يمكن التأكد من ذلك.
  3. إن مناقشات Libav مقابل FFmpeg تأتي بنتائج عكسية للغاية (يمكنك أن ترى ذلك من خلال كمية الفوضى المنشورة هنا بالفعل).ما حدث في الأساس هو انقسام المشروع حيث ذهب بعض المطورين في اتجاه واحد والبعض الآخر في اتجاه آخر، وحقيقة أن مشروع FFmpeg تمكن من الاحتفاظ بالاسم هي مجرد صدفة وليس من المنطقي أن نطلق على مشروع ما اسم أصلي وآخر مفترق.تكمن الاختلافات بين المشاريع في الغالب في أسلوب التطوير والفلسفة.إذا كنت ستصنف FFmpeg على أنه مفتوح المصدر أكثر وLibav على أنه برنامج مجاني أكثر، فلن تكون مخطئًا إلى هذا الحد.يأمل الأشخاص العقلانيون أن يعود المطورون إلى رشدهم في النهاية، وربما لا يقومون بدمج المشاريع، بل يتعاونون إلى حد أكبر.عندما ظهر نظام Ubuntu في الأصل، كانت هناك رسائل ضخمة في كل دردشة على نظام Debian GNU/Linux على غرار "Ubuntu ليس Debian!!!!!!!"، ولكن الآن هدأ الوضع وأصبح كلا الجانبين سعيدين جدًا بواحدة من هذه المحادثات. آخر.

هذه الإجابة هي ببساطة ملخص للتعليقات المقدمة من LordneckbeBBeard.

الدورية دون تشفير

الدورية دون إعادة ترميز غير ممكن ما لم:

  • الإدخال الخاص بك هو MJPEG
  • أنت تدوير عند التشغيل

تدوير مع الترميز باستخدام FFMPEG

صحيح

لتفهم بشكل صحيح الخطوات اللازمة لهذا، يجب أن يبدأ المرء بالقراءة أو على الأقل قشط هذا السؤال:

href="https://stackoverflow.com/q/9477115/1109017"> ما هي الاختلافات والوجهات التشابه بين FFMPEG، LIBAV، و AVCONV؟

Summary: Avconv هو شوكة من FFMPEG، واختار Debian Manufier Avconv، عليك ترجمة FFMPEG الصحيح من المصدر.

ستكون الخطوة التالية تجميع FFMPEG الصحيح من المصدر كما هو مفصل هنا:

p> دليل تجميع FFMPEG لدبيان

الخطوة الأخيرة تستخدم الأوامر الموجودة في مشاركات أخرى:

href="https://superuser.com/a/578329"> كيفية قلب الفيديو 180 درجة (رأسية / رأسا على عقب) مع FFMPEG؟ أو مقاطع الفيديو الدوارة مع FFMPEG

Summary: FFMPEG -VFilters "تدوير= 90" -I Input.mp4 الإخراج. mp4

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