এফএফএমপিগের সাথে ভিডিওগুলি ঘোরানো


417

আমি এফএফএমপিএগ দিয়ে কীভাবে ভিডিওগুলি ঘোরানো যায় তা বোঝার চেষ্টা করছি। আমি পোর্ট্রেট মোডে তোলা আইফোনের ভিডিওগুলির সাথে কাজ করছি। আমি জানি মিডিয়াআইএনফো (দুর্দান্ত গ্রন্থাগার, বিটিডাব্লু ) ব্যবহার করে ঘূর্ণনের বর্তমান ডিগ্রিগুলি কীভাবে নির্ধারণ করতে হবে তবে আমি এখন এফএফপিপেতে আটকে আছি।

আমি যা পড়েছি তা থেকে আপনাকে যা ব্যবহার করা দরকার তা হ'ল ভিফিল্টার বিকল্প। আমি যা দেখছি তার অনুসারে এটি দেখতে এমন হওয়া উচিত:

ffmpeg -vfilters "rotate=90" -i input.mp4 output.mp4

যাইহোক, আমি এটি কাজ করতে পারি না। প্রথমত, -vfilters আর অস্তিত্ব নেই, এটি এখন স্রেফ -vf । দ্বিতীয়ত, আমি এই ত্রুটিটি পেয়েছি:

No such filter: 'rotate'
Error opening filters!

যতদূর আমি জানি, আমার কাছে এফএফপিপেইগের একটি সর্ব-অপশন বিল্ড রয়েছে। Ffmpeg-ফিল্টার চালানো এটি দেখায়:

Filters:
anull            Pass the source unchanged to the output.
aspect           Set the frame aspect ratio.
crop             Crop the input video to x:y:width:height.
fifo             Buffer input images and send them when they are requested.
format           Convert the input video to one of the specified pixel formats.
hflip            Horizontally flip the input video.
noformat         Force libavfilter not to use any of the specified pixel formats
 for the input to the next filter.
null             Pass the source unchanged to the output.
pad              Pad input image to width:height[:x:y[:color]] (default x and y:
 0, default color: black).
pixdesctest      Test pixel format definitions.
pixelaspect      Set the pixel aspect ratio.
scale            Scale the input video to width:height size and/or convert the i
mage format.
slicify          Pass the images of input video on to next video filter as multi
ple slices.
unsharp          Sharpen or blur the input video.
vflip            Flip the input video vertically.
buffer           Buffer video frames, and make them accessible to the filterchai
n.
color            Provide an uniformly colored input, syntax is: [color[:size[:ra
te]]]
nullsrc          Null video source, never return images.
nullsink         Do absolutely nothing with the input video.

ভিএফ্লিপ এবং এইচএফলিপের বিকল্প থাকা দুর্দান্ত এবং সব কিছু, তবে আমার যেখানে যেতে হবে সেগুলি তারা কেবল আমাকে পাবেন না। আমার খুব কমপক্ষে 90 ডিগ্রি ভিডিও ঘোরানোর ক্ষমতা প্রয়োজন। 270 ডিগ্রি পাশাপাশি থাকার একটি দুর্দান্ত বিকল্প হবে। ঘোরানো বিকল্পগুলি কোথায় গেছে?


আমার উত্তর আপডেট। দেখে মনে হচ্ছে যে ফিল্টারটি উত্সটিতে সবেমাত্র যুক্ত হয়েছিল।
rwilliams

76
যে কেউ 180 ডিগ্রি ঘোরানোর জন্য অনুসন্ধান করছেন:-vf "vflip,hflip"
অরেঞ্জডোগ

4
আমি ভাবছি, যদি ডিকোডিং ছাড়াই এটি অর্জন করা যায় এবং তারপরে ভিডিওটিকে পুনরায় এনকোড করা যায় - জেপিগ্রাটান যেভাবে নিখরচায়ভাবে JPEG চিত্রগুলি ঘোরতে পারে ...
মিখাইল টি

2
ঘূর্ণন পতাকার জন্য এখানে দেখুন: stackoverflow.com/questions/15335073/…
ফেভারিফ জোসিপোভিচ

1
আমি সবেমাত্র একটি 180 ° ঘোরানো ভিডিও ভিমেওতে "ট্রান্সপোজ = 1, ট্রান্সপোজ = 1" সহ আপলোড করেছি। যদিও আমি ঘোরানো ভিডিওটি আবার খেলতে পারি, এটি ভিমেও প্রত্যাখ্যান করেছিল। @ অরেঞ্জডগের দৃষ্টিভঙ্গি মনোযোগের -vf "vflip,hflip"মতো কাজ করে।
বেসি

উত্তর:


682

90 ঘড়ির কাঁটার দিকে ঘোরান:

ffmpeg -i in.mov -vf "transpose=1" out.mov

ট্রান্সপোজ প্যারামিটারের জন্য আপনি পাস করতে পারেন:

0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip

-vf "transpose=2,transpose=2"180 ডিগ্রি ব্যবহার করুন ।

নিশ্চিত হয়ে নিন যে আপনি এখান থেকে একটি সাম্প্রতিক ffmpeg সংস্করণ ব্যবহার করেছেন (একটি স্ট্যাটিক বিল্ড সূক্ষ্মভাবে কাজ করবে)।

নোট করুন যে এটি অডিও এবং ভিডিও অংশগুলি পুনরায় এনকোড করবে। আপনি সাধারণত অডিওটি স্পর্শ না করে অনুলিপি করতে পারেন -c:a copy। ভিডিওর মান পরিবর্তন করতে, বিটরেট সেট করুন (উদাহরণস্বরূপ -b:v 1M) আপনি যদি ভিবিআর বিকল্পগুলি চান তবে H.264 এনকোডিং গাইডটি দেখুন

একটি সমাধান হ'ল এই সুবিধাযুক্ত স্ক্রিপ্টটি ব্যবহার করা ।


8
ভিডিওটিতে এখনও অরিয়েন্টেশন সম্পর্কিত তথ্য থাকবে তাই এখন ভিডিওটি আইফোনে সংশোধন করা হবে।
srcspider

25
যখন আমি এই কমান্ড ব্যবহার, আমি একটি পেতে নিম্ন মানের ভিডিও আউটপুট , যদি না - যেমন আমি শুধু আবিষ্কার করেছি - আমি ভাল হিসাবে এই পরামিতি ব্যবহার করুন: -vcodec libx264। তবে এটি দুর্দান্ত হবে যদি ffmpeg হিসাবে কোন এনকোডিংটি ব্যবহার করা উচিত এটি ইতিমধ্যে জেনে রাখা উচিত। কোন পরামর্শ?
সাদি

8
সাদির মতো একই লাইনের পাশাপাশি, মূল ভিডিওটির মানের "অনুলিপি" দেওয়ার কোনও উপায় আছে কি?
অ্যালেক জ্যাকবসন

58
180 এর জন্য আপনি ব্যবহার করতে পারেন-vf "transpose=2,transpose=2"
অ্যালেক্স প্লিউটাউ

23
বর্তমান দস্তাবেজগুলি নোট করে যে "সংখ্যার মানগুলি অবচয় করা হয়েছে, এবং প্রতীকী ধ্রুবকগুলির পক্ষে বাদ দেওয়া উচিত।" ffmpeg.org/ffmpeg-filters.html#transpose এভাবে cclock_flip, clock, cclockবা clock_flipপরিবর্তে 0, 1, 2বা 3
l --marc l

149

আপনি যদি নিজের ভিডিওটি পুনরায় এনকোড করতে না চান এবং আপনার প্লেয়ার ঘূর্ণন মেটাডেটা পরিচালনা করতে পারে আপনি কেবল ffmpeg ব্যবহার করে মেটাডেটাতে রোটেশন পরিবর্তন করতে পারেন:

ffmpeg -i input.m4v -metadata:s:v rotate="90" -codec copy output.m4v

11
কীভাবে প্রথমে ঘোরানো মেটাডেটা যাচাই করবেনffmpeg -i input.m4v 2>&1 | grep rotate
লিডাওবিংয়ের মাধ্যমে

60
এটি এখন পর্যন্ত সেরা উত্তর। তবে কিছুটা হলেও উন্নতি করতে হবে। ভিডিওতে থাকা বাকী মেটা-ডেটা (যেমন তারিখ, ক্যামেরা) হারানো এড়ানোর জন্য ffmpeg -i input.m4v -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.m4v। এইভাবে ইনপুট ফাইলের সমস্ত গ্লোবাল মেটাডেটা আউটপুট ফাইলে বিশ্বব্যাপী মেটাডেটা হিসাবে অনুলিপি করা হবে এবং কেবল ঘূর্ণন মেটা-ডেটা পরিবর্তন করা হবে।
স্থানান্তর করুন

11
আপনার যদি একটি প্রতিকৃতি-মোড ভিডিও থাকে এবং এটি কেবলমাত্র "ইউএন-রোটেট" করতে চান এটি একটি স্ট্যান্ডার্ড 1920x1080 রয়েছে, তবে আপনি সম্ভবত এটি চান rotate=0
mivk

1
চেষ্টা করেছেন -metadata:s:v rotate="180", কাজ করেননি। এটা কি কাজ করার কথা?
ওন্দ্র ŽiŽka

7
আইএমএইচও সর্বোত্তম সমাধান কারণ কোনও পুনরায় কোডিং প্রয়োজন হয় না এবং বেশিরভাগ ভিডিও প্লেয়ার মেটাডেটা রোটেশন সমর্থন করে। গুগল ফটোগুলির মতো ক্লাউড পরিষেবাগুলি। তবে, মনে রাখবেন যে ffmpeg অগত্যা সমস্ত ফাইলটি মূল ফাইল থেকে অনুলিপি করে না! অতএব, আমি মূল ফাইল থেকে অন্য সমস্ত মেটাডেটা অনুলিপি করার জন্য স্পষ্টভাবে নির্দিষ্ট করার পরামর্শ দেব:ffmpeg -i input.mp4 -codec copy -map_metadata 0 -metadata:s:v:0 rotate=0 output.mp4
Andreas

83

আপনি কি transposeএখনও চেষ্টা করেছেন ? লাইক (অন্য উত্তর থেকে)

 ffmpeg -i input -vf transpose=2 output

আপনি যদি কোনও পুরানো সংস্করণ ব্যবহার করছেন তবে ট্রান্সপোজ বৈশিষ্ট্যটি ব্যবহার করতে চাইলে আপনাকে ffmpeg আপডেট করতে হবে, যেমন এটি অক্টোবর ২০১১ এ যুক্ত হয়েছিল।

FFmpeg ডাউনলোড পৃষ্ঠাটি স্ট্যাটিক বিল্ডগুলির প্রস্তাব করে যা আপনি সেগুলি সংকলন না করেই সরাসরি সম্পাদন করতে পারেন।


1
না আমার নেই. আমি জানতাম না যে এর অস্তিত্ব আছে। আমি একটা শট দেব।
জোকুল

ট্রান্সপোজ ফিল্টারটি আমার কোনও এফএফএমপিগ বিল্ডের মধ্যে উপস্থিত বলে মনে হচ্ছে না। আমার এটি যুক্ত করার কথা কীভাবে?
জোকুল


6
মনে হচ্ছে গ্রহণযোগ্য উত্তরের 1.5 বছর পূর্বে দরকারী উত্তর দেওয়ার জন্য আমি শাস্তি পেয়েছি।
rwilliams

1
@ জোনাসবি ফিল্টারগুলি কমা দিয়ে আলাদা করুন। দেখা
স্ট্যাকওভারফ্লো.

19

একই উত্তরটি অনুসন্ধান করার সময় আমি এই পৃষ্ঠাটি জুড়ে এসেছি। এটি প্রাথমিকভাবে জিজ্ঞাসা করা এখন ছয় মাস হয়ে গেছে এবং এর পরে বিল্ডগুলি অনেকবার আপডেট করা হয়েছে। যাইহোক, আমি এই তথ্যটির সন্ধানের জন্য এখানে যে অন্য যে কেউ আসে তার জন্য একটি উত্তর যুক্ত করতে চেয়েছিলাম।

আমি এই সংগ্রহস্থলগুলি থেকে ডেবিয়ান স্কুইজ এবং এফএফপিপিগ সংস্করণ ব্যবহার করছি ।

Ffmpeg এর জন্য MAN পৃষ্ঠাতে নিম্নলিখিত ব্যবহারের কথা বলা হয়েছে

ffmpeg -i inputfile.mpg -vf "transpose=1" outputfile.mpg

মূলটি হ'ল আপনি কোনও ডিগ্রি ভেরিয়েবল ব্যবহার করবেন না, তবে এমএএন পৃষ্ঠা থেকে পূর্বনির্ধারিত সেটিং ভেরিয়েবল।

0=90CounterCLockwise and Vertical Flip  (default) 
1=90Clockwise 
2=90CounterClockwise 
3=90Clockwise and Vertical Flip

তথ্যের জন্য ধন্যবাদ! আমি সাধারণত কখনই এই কাজটি করতে সক্ষম হইনি, কারণ সাধারণত উত্স থেকে তৈরি করতে আমার সমস্যা হয়। আমি এখন এটি আবার কাজ করতে পারি কিনা তা দেখতে পাচ্ছি।
জোকল

ট্রান্সপোজ = 3 চিত্রটি আয়নাতে পরিণত করছে
ড্যানিয়েল কোবে

ট্রান্সপোজ = 2 আমার 270 ঘোরানো ভিডিওটির জন্য আয়না ছাড়াই কাজ করেছে
ড্যানিয়েল কোবে

17

ছবিটি ঘড়ির কাঁটার দিকে ঘোরানোর জন্য আপনি রেডিয়েন্সে ধনাত্মক কোণ নির্দেশ করে, ঘোরান ফিল্টারটি ব্যবহার করতে পারেন। 90 ডিগ্রি পিআই / 2 এর সাথে সমান করে, আপনি এটি এর মতো করতে পারেন:

ffmpeg -i in.mp4 -vf "rotate=PI/2" out.mp4

ঘড়ির কাঁটার বিপরীতে কোণ অবশ্যই negativeণাত্মক হতে হবে

ffmpeg -i in.mp4 -vf "rotate=-PI/2" out.mp4

ট্রান্সপোজ ফিল্টার 90 ডিগ্রির জন্য সমানভাবে ভাল কাজ করবে, তবে অন্যান্য কোণগুলির জন্য এটি দ্রুত বা একমাত্র পছন্দ।


2
এটা অসাধারণ. আমি খুঁজে পেয়েছি যে রেডিয়ানের সূক্ষ্ম-অঙ্কিত রেজোলিউশন পাওয়া সম্ভব, কারণ *গুণ হিসাবে এটি আচরণ করে: ffmpeg -i in.avi -vf "rotate=-8*PI/40" -q 1 out.avi (
-পিআই

12
ffmpeg -vfilters "rotate=90" -i input.mp4 output.mp4 

এমনকি সর্বশেষ উত্স সহ, কাজ করবে না ...

অর্ডার পরিবর্তন করতে হবে:

ffmpeg -i input.mp4 -vf vflip output.mp4

ঠিকভাবে কাজ করে


এটি হ'ল আপনি ফিল্টারটি ভুল ফাইলটিতে প্রয়োগ করছেন ... ffmpeg -i ইনপুট.এমপি 4 -vf "ঘোরান = 90" আউটপুট.এমপি
প্যাট্রিক

2
" রেডিয়ানগুলিতে প্রকাশিত একটি নির্বিচারে কোণ দ্বারা ভিডিও ঘোরান" " ডকুমেন্টেশন: ffmpeg.org/ffmpeg-filters.html#rotate সুতরাং, রেডিয়ান rotate=PI/2বা rotate=90*PI/180প্রয়োজন
l --marc l

এই কল্পনাপ্রসূত
Tessaracter

7

যদি আপনি "কোডেক পরীক্ষামূলক তবে পরীক্ষামূলক কোডেকগুলি সক্ষম না করা" পান তবে ত্রুটিটি এটি ব্যবহার করে:

ffmpeg -i inputFile -vf "transpose=1" -c:a copy outputFile

আমার সাথে অ্যাক অডিও সহ .mov ফাইলের জন্য ঘটেছে।


এটি আমার পক্ষে কাজ করা একমাত্র উদাহরণ, তবে মানটি ছিল ভয়ানক এবং খুব অবরুদ্ধ। এছাড়াও, এটি একটি 1080x1920 ভিডিওটিকে 352x640 এ নামিয়েছে। আমার ধারণা আমি দু'একটি সুইচ মিস করছি। কোন পরামর্শ?
ললিফ

1
@ ললিফ যোগ করুন-sameq
অ্যান্ড্রু

2
@ অ্যান্ড্রুশ্লিফার ধন্যবাদ আমি চেষ্টা করেছিলাম, কিন্তু ffmpeg আমার দিকে পিছনে ফেলেছিল Option 'sameq' was removed. If you are looking for an option to preserve the quality (which is not what -sameq was for), use -qscale 0 or an equivalent quality factor option. Failed to set value '1' for option 'sameq': Invalid argument -ক্ক্যাসেলও একটি ত্রুটি দেয়। Please use -q:a or -q:v, -qscale is ambiguous, কিন্তু এখনও কাজ করে।
ললিফ

3

এই স্ক্রিপ্টটি "ফিক্সড ফাইলেস" এর অধীনে ডিরেক্টরি কাঠামোযুক্ত ফাইলগুলি আউটপুট দেবে। এই মুহূর্তে এমওভি ফাইলগুলিতে স্থির করা হয়েছে এবং ভিডিওর মূল "রোটেশন" এর উপর নির্ভর করে বেশ কয়েকটি রূপান্তর সম্পাদন করবে। ম্যাকেরিক্স চালিত ম্যাকের আইওএস ক্যাপচার করা ভিডিওগুলির সাথে কাজ করে তবে সহজেই তা রফতানিযোগ্য হওয়া উচিত। উভয় ইনস্টল থাকার উপর নির্ভর করে exiftool এবং ffmpeg

#!/bin/bash

# rotation of 90 degrees. Will have to concatenate.
#ffmpeg -i <originalfile> -metadata:s:v:0 rotate=0 -vf "transpose=1" <destinationfile>
#/VLC -I dummy -vvv <originalfile> --sout='#transcode{width=1280,vcodec=mp4v,vb=16384,vfilter={canvas{width=1280,height=1280}:rotate{angle=-90}}}:std{access=file,mux=mp4,dst=<outputfile>}\' vlc://quit

#Allowing blanks in file names
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

#Bit Rate
BR=16384

#where to store fixed files
FIXED_FILES_DIR="fixedFiles"
#rm -rf $FIXED_FILES_DIR
mkdir $FIXED_FILES_DIR

# VLC
VLC_START="/Applications/VLC.app/Contents/MacOS/VLC -I dummy -vvv"
VLC_END="vlc://quit"


#############################################
# Processing of MOV in the wrong orientation
for f in `find . -regex '\./.*\.MOV'` 
do
  ROTATION=`exiftool "$f" |grep Rotation|cut -c 35-38`
  SHORT_DIMENSION=`exiftool "$f" |grep "Image Size"|cut -c 39-43|sed 's/x//'`
  BITRATE_INT=`exiftool "$f" |grep "Avg Bitrate"|cut -c 35-38|sed 's/\..*//'`
  echo Short dimension [$SHORT_DIMENSION] $BITRATE_INT

  if test "$ROTATION" != ""; then
    DEST=$(dirname ${f})
    echo "Processing $f with rotation $ROTATION in directory $DEST"
    mkdir -p $FIXED_FILES_DIR/"$DEST"

    if test "$ROTATION" == "0"; then
      cp "$f" "$FIXED_FILES_DIR/$f"

    elif test "$ROTATION" == "180"; then
#      $(eval $VLC_START \"$f\" "--sout="\'"#transcode{vfilter={rotate{angle=-"$ROTATION"}},vcodec=mp4v,vb=$BR}:std{access=file,mux=mp4,dst=\""$FIXED_FILES_DIR/$f"\"}'" $VLC_END )
      $(eval ffmpeg -i \"$f\" -vf hflip,vflip -r 30 -metadata:s:v:0 rotate=0 -b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\")

    elif test "$ROTATION" == "270"; then
      $(eval ffmpeg -i \"$f\" -vf "scale=$SHORT_DIMENSION:-1,transpose=2,pad=$SHORT_DIMENSION:$SHORT_DIMENSION:\(ow-iw\)/2:0" -r 30 -s "$SHORT_DIMENSION"x"$SHORT_DIMENSION" -metadata:s:v:0 rotate=0 -b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\" )

    else
#      $(eval $VLC_START \"$f\" "--sout="\'"#transcode{scale=1,width=$SHORT_DIMENSION,vcodec=mp4v,vb=$BR,vfilter={canvas{width=$SHORT_DIMENSION,height=$SHORT_DIMENSION}:rotate{angle=-"$ROTATION"}}}:std{access=file,mux=mp4,dst=\""$FIXED_FILES_DIR/$f"\"}'" $VLC_END )
      echo ffmpeg -i \"$f\" -vf "scale=$SHORT_DIMENSION:-1,transpose=1,pad=$SHORT_DIMENSION:$SHORT_DIMENSION:\(ow-iw\)/2:0" -r 30 -s "$SHORT_DIMENSION"x"$SHORT_DIMENSION" -metadata:s:v:0 rotate=0 -b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\" 
      $(eval ffmpeg -i \"$f\" -vf "scale=$SHORT_DIMENSION:-1,transpose=1,pad=$SHORT_DIMENSION:$SHORT_DIMENSION:\(ow-iw\)/2:0" -r 30 -s "$SHORT_DIMENSION"x"$SHORT_DIMENSION" -metadata:s:v:0 rotate=0 -b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\" )

    fi

  fi

echo 
echo ==================================================================
sleep 1
done

#############################################
# Processing of AVI files for my Panasonic TV
# Use ffmpegX + QuickBatch. Bitrate at 16384. Camera res 640x424
for f in `find . -regex '\./.*\.AVI'` 
do
  DEST=$(dirname ${f})
  DEST_FILE=`echo "$f" | sed 's/.AVI/.MOV/'`
  mkdir -p $FIXED_FILES_DIR/"$DEST"
  echo "Processing $f in directory $DEST"
  $(eval ffmpeg -i \"$f\" -r 20 -acodec libvo_aacenc -b:a 128k -vcodec mpeg4 -b:v 8M -flags +aic+mv4 \"$FIXED_FILES_DIR/$DEST_FILE\" )
echo 
echo ==================================================================

done

IFS=$SAVEIFS

2
ওচ ... এটি কার্যকর হতে পারে তবে এটি পুরোপুরি ঘৃণ্য। প্রথমত, শেল-প্রোগ্রামিংয়ের সাধারণ নিয়ম: আপনার কখনই পাইপের কোনও গ্রাইপ, কাট, আড্ডা বা সিডের বেশি প্রয়োজন হয় না। যে কোনও গ্রেপ | কাটা | সেড কেবলমাত্র শেড বা অজকের সাথে করণীয়। তারপরে, আরও সুনির্দিষ্টভাবে, এক্সিফটলকে আপনি যে ট্যাগটি চান তা কেবল আউটপুট করতে বলা যেতে পারে - সুতরাং রোটেশনটি ফিল্টার না করে কেবল "এক্সিফটোল-রোটেশন"। তৃতীয়ত, পাঠযোগ্যতা এবং দক্ষতা উভয়ের জন্যই আপনার এত "ইওলস" এবং আপনার "যদি পরীক্ষা ..." কেস $ রোটেশন ইন - দ্বারা প্রতিস্থাপন করা উচিত। শুভকামনা!
মিখাইল টি।

কোন ডাইস নেই: [Parsed_pad_2 @ 0x7f8b15c3a580] Input area -420:0:1500:1080 not within the padded area 0:0:1080:1080 or zero-sized\ n ` [Parsed_pad_2 @ 0x7f8b15c3a580] Failed to configure input pad on Parsed_pad_2\ n Error reinitializing filters!\ n Failed to inject frame into filter network: Invalid argument\ n Error while processing the decoded data for stream #0:0\ nConversion failed!
স্লিপ ডি থম্পসন

2

অ্যালেক্সের উত্তর প্রায়শই আমার পক্ষে কাজ করেছিল কেবলমাত্র আমি বাদ দিয়েই:

টাইমবেস ১/৯০০০০ এমপিইজি ৪ স্ট্যান্ডার্ড দ্বারা সমর্থিত নয়, টাইমবেস ডিনোমিনেটরের সর্বাধিক ভর্তির মান 65535

আমাকে কমান্ডটিতে কেবলমাত্র একটি প্যারামিটার (-r 65535/2733) যোগ করতে হয়েছিল এবং এটি কার্যকর হয়েছিল। সম্পূর্ণ আদেশটি ছিল:

ffmpeg -i in.mp4 -vf "transpose=1" -r 65535/2733 out.mp4

যদি আপনি একটি "এনটিএসসি-ফিল্ম" ফ্রেমরেট খুঁজছেন, তবে 24000/1001আরও সঠিক হবে।
রেইনো

2

সর্বশেষে উল্লিখিত সমাধানগুলির থেকে পৃথক পদ্ধতির একটি অতিরিক্ত সমাধান হ'ল আপনার ক্যামেরা ড্রাইভারটি v4l2 ক্যামেরা নিয়ন্ত্রণগুলি সমর্থন করে কিনা তা পরীক্ষা করা (যা খুব সাধারণ)।
টার্মিনালে শুধু টাইপ করুন:

v4l2-ctl -L

যদি আপনার ক্যামেরা ড্রাইভার v4l2 ক্যামেরা নিয়ন্ত্রণগুলিকে সমর্থন করে তবে আপনার এমন কিছু পাওয়া উচিত (নীচের তালিকাটি আপনার ক্যামেরা ড্রাইভারের নিয়ন্ত্রণগুলির উপর নির্ভর করে):

               contrast (int)    : min=0 max=255 step=1 default=0 value=0 flags=slider
             saturation (int)    : min=0 max=255 step=1 default=64 value=64 flags=slider
                    hue (int)    : min=0 max=359 step=1 default=0 value=0 flags=slider
white_balance_automatic (bool)   : default=1 value=1 flags=update
            red_balance (int)    : min=0 max=4095 step=1 default=0 value=128 flags=inactive, slider
           blue_balance (int)    : min=0 max=4095 step=1 default=0 value=128 flags=inactive, slider
               exposure (int)    : min=0 max=65535 step=1 default=0 value=885 flags=inactive, volatile
         gain_automatic (bool)   : default=1 value=1 flags=update
                   gain (int)    : min=0 max=1023 step=1 default=0 value=32 flags=inactive, volatile
        horizontal_flip (bool)   : default=0 value=0
          vertical_flip (bool)   : default=0 value=0

এবং যদি আপনি ভাগ্যবান হন তবে এটি অনুভূমিক_ফ্লিপ এবং উল্লম্ব_ফ্লিপ সমর্থন করে ।
তারপরে আপনার যা করতে হবে তা হ'ল অনুভূমিক_ফ্লিপ সেট করে দেওয়া:

v4l2-ctl --set-ctrl horizontal_flip=1

বা উল্লম্ব_ফ্লিপ দ্বারা:

v4l2-ctl --set-ctrl vertical_flip=1

এবং তারপরে আপনি একটি নতুন ভিডিও ক্যাপচার করতে আপনার ভিডিও ডিভাইসকে কল করতে পারেন (নীচে উদাহরণ দেখুন), এবং ভিডিওটি ঘোরানো / উল্টানো হবে।

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vcodec libx264 -f mpegts input.mp4

অবশ্যই যে আপনি যদি ইতিমধ্যে একটি বিদ্যমান ভিডিও প্রক্রিয়া করার প্রয়োজন হয় তবে এই পদ্ধতিটি সন্ধান করা সমাধান নয়।

এই পদ্ধতির সুবিধাটি হ'ল আমরা চিত্রটি সেন্সর পর্যায়ে ফ্লিপ করি, তাই চালকের সেন্সর ইতিমধ্যে আমাদের চিত্রটি উল্টিয়ে দেয় এবং এটি অ্যাপ্লিকেশনটিকে (এফএফপেম্পের মতো) আর কোনও এবং অপ্রয়োজনীয় প্রক্রিয়াজাতকরণ সংরক্ষণ করে।


V4l2 সম্পর্কে দুর্দান্ত তথ্য এখানে। রেকর্ডিংয়ের সময় সঠিক দিকনির্দেশে ঘোরানো স্পষ্টতই পছন্দনীয় :) প্রায় 10 বছরের পুরানো এই প্রশ্নটি (বাহ!) মূলত আইওএস ডিভাইস থেকে ভিডিওগুলি আপলোড করা সম্পর্কে জিজ্ঞাসা করা হয়েছিল যদি এটি কোনও প্রসঙ্গ সরবরাহ করতে সহায়তা করে :)
জোকুল

আমি এই সম্প্রদায়টিতে কিছুটা নতুন এবং আমার প্রশ্নটি এখানে আমার জ্যেষ্ঠতার চেয়ে অনেক পুরানো ... আমি সত্যিই মনে করি এটি একটি ভাল (এবং সাধারণ) প্রশ্ন, তাই আমি বিশ্বাস করি যে এই পুরানো প্রশ্নটি অনেক এফএফএমপিগ ব্যবহারকারীদের সহায়তা করবে।
জেএম

1

দুর্ভাগ্যক্রমে, ffmpeg এর উবুন্টু সংস্করণ ভিডিওফিল্টারগুলিকে সমর্থন করে।

একই প্রভাব অর্জন করতে আপনাকে অ্যাভিডেমাক্স বা অন্য কোনও সম্পাদক ব্যবহার করতে হবে।

প্রোগ্রামেটিক উপায়ে, মেনকোডার প্রস্তাব দেওয়া হয়েছে।


1
আপনার অর্থ কি "ffmpeg এর উবুন্টু সংস্করণ ভিডিওফিল্টার সমর্থন করে না "?
ব্যবহারকারী 1438038

2
এফওয়াইআই: "এফএফম্পেগ উবুন্টু 15.04 স্বতন্ত্র ভার্ভেটে ফিরে এসেছেন।" বা উবুন্টুর জন্য সংকলন করা যায়। -> trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
l --marc l

avconv (14.04 এ) করে এবং ঠিক একই কাজ করে বলে মনে হয়। (তবে পরবর্তী সংস্করণগুলির জন্য, অবশ্যই
এফএফপিপে

1

স্মার্টফোন: উল্লম্ব ফর্ম্যাটে একটি ভিডিও পুনরুদ্ধার করা হয়েছে

এটি কোনও ওয়েবসাইডে প্রেরণ করতে চান এটি 90 the বাম দিকে ছিল (বিরোধী ঘড়ির কাঁটার দিক, ল্যান্ডস্কেপ ফর্ম্যাট) হুঁ।

ffmpeg -i input.mp4 -vf "rotate=0" output.mp4

এটা কি পারে. আমি আবার উল্লম্ব ফর্ম্যাট পেয়েছি

ডিবিয়ান বাস্টার: ffmpeg - রূপান্তর ffmpeg সংস্করণ 4.1.4-1 ~ deb10u1 কপিরাইট (সি) 2000-2019 এফএফপিপেইগ বিকাশকারী

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.