ffmpeg - كيفية - تدوير ملفات الفيديو mp4 دون إعادة ترميز



كيفية تغيير اتجاه pdf من أفقي إلى عمودي (4)

إذا كنت ترغب فقط في تغيير البيانات الوصفية التي يقوم فيها مشغلو الوسائط الذين يعتبرون العلم بتشغيل الملف بالتناوب ، فجرّب شيئًا مثل:

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

كما وجدت في أي مكان آخر على stackoverflow .

https://code.i-harness.com

أنا أبحث عن طريقة لتدوير مقاطع الفيديو باستخدام 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> الحد.

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


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

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4

تم التصليح.


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

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

FFmpeg والبرامج المشابهة بتغيير بيانات التعريف حتى مع خيار -map_metadata . يمكن لـ exiftool قراءة مصفوفة التدوير exiftool التدوير ، ولكن لا يمكن كتابتها.

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

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

  • فتح MP4 مع محرر عرافة والبحث عن فيديو للعثور على البيانات الوصفية لمسار الفيديو
  • بعض الصفوف أعلاه ( trak...\tkhd الغالب 9 ، وأحيانا 12) سترى trak...\tkhd
  • في ما بين يجب أن يكون هناك علامة @ (HEX 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 درجة مئوية ccw:

    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 درجة) ، يلزمك تبديل القنوات اليمنى واليسرى.