Quay video với FFmpeg


417

Tôi đã cố gắng tìm ra cách xoay video với FFmpeg. Tôi đang làm việc với các video iPhone được chụp ở chế độ dọc. Tôi biết cách xác định mức độ xoay hiện tại bằng MediaInfo (thư viện xuất sắc, btw) nhưng hiện tại tôi đang bị kẹt trên FFmpeg.

Từ những gì tôi đã đọc, những gì bạn cần sử dụng là một tùy chọn vfilter . Theo những gì tôi thấy, nó sẽ trông như thế này:

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

Tuy nhiên, tôi không thể làm việc này được. Đầu tiên, -vfilters không còn tồn tại nữa, giờ chỉ là -vf . Thứ hai, tôi nhận được lỗi này:

No such filter: 'rotate'
Error opening filters!

Theo như tôi biết, tôi có bản dựng FFmpeg toàn bộ tùy chọn. Chạy ffmpeg -filters cho thấy điều này:

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.

Có các tùy chọn cho vfliphflip là tuyệt vời và tất cả, nhưng chúng sẽ không đưa tôi đến nơi tôi cần đến. Tôi cần ít nhất khả năng xoay video 90 độ. 270 độ sẽ là một lựa chọn tuyệt vời để có là tốt. Các tùy chọn xoay đi đâu?


Cập nhật câu trả lời của tôi. Có vẻ như bộ lọc đó vừa được thêm vào tháng trước vào nguồn.
rwilliams

76
Đối với bất cứ ai đang tìm kiếm một vòng quay 180 độ:-vf "vflip,hflip"
OrangeDog

4
Tôi tự hỏi, nếu điều này có thể đạt được mà không cần giải mã và sau đó mã hóa lại video - cách jpegtran có thể xoay hình ảnh JPEG một cách dễ dàng ...
Mikhail T.

2
Xem ở đây để xem cờ xoay: stackoverflow.com/questions/15335073/ từ
Davor Josipovic

1
Tôi vừa tải lên một video xoay 180 ° với "transpose = 1, transpose = 1" lên vimeo. Mặc dù tôi có thể phát lại video đã quay, nhưng nó đã bị vimeo từ chối. Cách tiếp cận của @ OrangeDog -vf "vflip,hflip"hoạt động như một cơ duyên.
Besi

Câu trả lời:


682

Xoay 90 theo chiều kim đồng hồ:

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

Đối với tham số chuyển vị bạn có thể vượt qua:

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

Sử dụng -vf "transpose=2,transpose=2"cho 180 độ.

Đảm bảo bạn sử dụng phiên bản ffmpeg gần đây từ đây (bản dựng tĩnh sẽ hoạt động tốt).

Lưu ý rằng điều này sẽ mã hóa lại các phần âm thanh và video. Bạn thường có thể sao chép âm thanh mà không cần chạm vào nó, bằng cách sử dụng -c:a copy. Để thay đổi chất lượng video, hãy đặt bitrate (ví dụ với -b:v 1M) hoặc xem hướng dẫn mã hóa H.264 nếu bạn muốn tùy chọn VBR.

Một giải pháp cũng là sử dụng kịch bản tiện lợi này .


8
Video vẫn sẽ có thông tin định hướng, vì vậy bây giờ video sẽ bị sửa sai trên iphone.
srcspider

25
Khi tôi sử dụng lệnh này, tôi nhận được đầu ra video chất lượng thấp , trừ khi - như tôi vừa phát hiện - tôi cũng sử dụng tham số này : -vcodec libx264. Nhưng sẽ thật tuyệt nếu tôi không cần phải tìm mã hóa nào để sử dụng như ffmpeg nên đã biết. Bất kỳ đề xuất?
Sadi

8
Cùng một dòng với Sadi, có cách nào để "sao chép" chất lượng của video gốc không?
Alec Jacobson

58
Đối với 180 bạn có thể sử dụng-vf "transpose=2,transpose=2"
Alex Pliutau 23/12/13

23
Các tài liệu hiện tại lưu ý rằng "Các giá trị số bị phản đối, và nên bỏ đi để ủng hộ các hằng số tượng trưng." ffmpeg.org/ffmpeg-filters.html#transpose Do đó cclock_flip, clock, cclockhoặc clock_flipthay vì 0, 1, 2hoặc 3.
l --marc l

149

Nếu bạn không muốn mã hóa lại video của mình VÀ trình phát của bạn có thể xử lý siêu dữ liệu xoay, bạn chỉ có thể thay đổi xoay trong siêu dữ liệu bằng cách sử dụng ffmpeg:

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

11
làm thế nào về việc kiểm tra siêu dữ liệu xoay đầu tiên vớiffmpeg -i input.m4v 2>&1 | grep rotate
capaobing

60
Đây là câu trả lời tốt nhất cho đến nay. Nhưng có một cải tiến nhỏ để làm. Để tránh mất dữ liệu meta còn lại (như ngày, máy ảnh) trên video ffmpeg -i input.m4v -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.m4v. Bằng cách này, tất cả siêu dữ liệu toàn cầu trên tệp đầu vào sẽ được sao chép dưới dạng siêu dữ liệu toàn cầu sang tệp đầu ra và chỉ thay đổi siêu dữ liệu xoay vòng.
di chuyển

11
Nếu bạn có video ở chế độ dọc và chỉ muốn "xoay UN" để có 1920x1080 tiêu chuẩn, thì có lẽ bạn muốn rotate=0.
mivk

1
Đã thử -metadata:s:v rotate="180", không làm việc. Đó có phải là để làm việc?
Ondra Žižka

7
IMHO giải pháp tốt nhất vì không cần mã hóa lại và hầu hết trình phát video đều hỗ trợ xoay vòng siêu dữ liệu. Ngoài ra các dịch vụ đám mây như Google Photos. Tuy nhiên, hãy nhớ rằng ffmpeg không nhất thiết phải sao chép tất cả siêu dữ liệu từ tệp gốc! Do đó, tôi khuyên bạn nên chỉ định rõ ràng để sao chép tất cả các siêu dữ liệu khác từ tệp gốc:ffmpeg -i input.mp4 -codec copy -map_metadata 0 -metadata:s:v:0 rotate=0 output.mp4
Andreas

83

Bạn đã thử transposechưa Thích (từ câu trả lời khác)

 ffmpeg -i input -vf transpose=2 output

Nếu bạn đang sử dụng một phiên bản cũ, bạn phải cập nhật ffmpeg nếu bạn muốn sử dụng tính năng chuyển đổi, như đã được thêm vào tháng 10 năm 2011.

Trang tải xuống FFmpeg cung cấp các bản dựng tĩnh mà bạn có thể thực hiện trực tiếp mà không cần phải biên dịch chúng.


1
Không tôi không có. Tôi không biết nó tồn tại. Tôi sẽ cho nó một shot.
vui vẻ

Bộ lọc chuyển vị dường như không tồn tại trong bất kỳ bản dựng FFmpeg nào của tôi. Làm thế nào tôi có thể thêm nó?
vui vẻ

Trong phiên bản của các tài liệu kể từ 2011-05-15, liên kết chính xác hiện là ffmpeg.org/ffmpeg-doc.html#SEC93
Peter Hansen

6
Cảm giác như tôi đã bị trừng phạt vì đã đưa ra một câu trả lời hữu ích 1,5 năm trước khi câu trả lời được chấp nhận.
rwilliams

1
@JonasB Phân tách các bộ lọc bằng dấu phẩy. Xem stackoverflow.com/questions/6195872/
Mạnh

19

Tôi đã xem qua trang này trong khi tìm kiếm cùng một câu trả lời. Bây giờ là sáu tháng kể từ khi điều này ban đầu được yêu cầu và các bản dựng đã được cập nhật nhiều lần kể từ đó. Tuy nhiên, tôi muốn thêm một câu trả lời cho bất kỳ ai khác đi qua đây để tìm kiếm thông tin này.

Tôi đang sử dụng phiên bản Debian Squeeze và FFmpeg từ các kho lưu trữ đó.

Trang MAN cho ffmpeg nêu cách sử dụng sau

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

Điều quan trọng là bạn không được sử dụng biến độ, mà là biến cài đặt được xác định trước từ trang MAN.

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

Cảm ơn bạn về thông tin! Tôi không bao giờ có thể thực sự làm việc này, vì tôi thường gặp khó khăn khi xây dựng từ nguồn. Tôi có thể thấy nếu tôi có thể làm cho nó hoạt động trở lại bây giờ.
vui vẻ

transpose = 3 đang khiến hình ảnh phản chiếu
Daniel Kobe

transpose = 2 hoạt động mà không phản chiếu cho video xoay 270 của tôi
Daniel Kobe

17

Để xoay hình ảnh theo chiều kim đồng hồ, bạn có thể sử dụng bộ lọc xoay, cho biết góc dương tính theo radian. Với 90 độ tương đương với PI / 2, bạn có thể làm như vậy:

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

ngược chiều kim đồng hồ, góc phải âm

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

Bộ lọc chuyển vị sẽ hoạt động tốt như nhau trong 90 độ, nhưng đối với các góc khác thì đây là sự lựa chọn nhanh hơn hoặc duy nhất.


2
điều đó thật tuyệt. Tôi thấy rằng có thể có được độ phân giải radian chi tiết hơn, bởi vì *hoạt động như phép nhân: ffmpeg -i in.avi -vf "rotate=-8*PI/40" -q 1 out.avi (xoay ít hơn một chút so với -PI / 4 = -10 * PI / 40)
eqzx

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

sẽ không hoạt động, ngay cả với nguồn mới nhất ...

phải thay đổi thứ tự:

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

hoạt động tốt


đó là vì bạn đang áp dụng bộ lọc vào tệp sai ... hãy thử ffmpeg -i input.mp4 -vf "rotation = 90" output.mp4, sau đó nó sẽ hoạt động
patrick

2
"Xoay video theo một góc tùy ý được biểu thị bằng radian ." Tài liệu: ffmpeg.org/ffmpeg-filters.html#rotate Vì vậy, radian rotate=PI/2hoặc rotate=90*PI/180là cần thiết
l --marc l

Điều này thật tuyệt vời
Tessaracter

7

Nếu bạn nhận được lỗi "Codec là thử nghiệm nhưng codec thử nghiệm không được bật", hãy sử dụng lỗi này:

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

Đã xảy ra với tôi cho một số tập tin .mov với âm thanh aac.


Đây là ví dụ duy nhất có hiệu quả với tôi, nhưng chất lượng thì tệ và rất khối. Ngoài ra, nó đã giảm kích thước video 1080x1920 xuống 352x640. Tôi đoán tôi đang thiếu một hoặc hai công tắc. Bất kỳ đề xuất?
LOlliffe

1
@LOlliffe thêm-sameq
Andrew Schleifer

2
@AndrewSchleifer Cảm ơn. Tôi đã thử điều đó, nhưng ffmpeg đã ném lại cho tôi 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 -qscale cũng đưa ra một lỗi. Please use -q:a or -q:v, -qscale is ambiguous, nhưng vẫn hoạt động.
LOlliffe

3

Kịch bản lệnh này sẽ xuất các tệp có cấu trúc thư mục trong "fixedFiles". Hiện tại được cố định vào các tệp MOV và sẽ thực hiện một số biến đổi tùy thuộc vào "xoay" ban đầu của video. Hoạt động với các video đã quay trên iOS trên Mac chạy Mavericks, nhưng có thể dễ dàng xuất ra. Dựa vào việc đã cài đặt cả exiftoolffmpeg .

#!/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
Ouch ... Điều này có thể làm việc, nhưng nó là hoàn toàn gớm ghiếc. Trước hết, quy tắc chung của lập trình shell: bạn không bao giờ cần nhiều hơn một grep, cut, awk hoặc sed trong một đường ống. Bất kỳ grep | cut | sed đều có thể thực hiện được với một mình sed hoặc awk. Sau đó, cụ thể hơn, exiftool có thể được yêu cầu chỉ xuất (các) thẻ bạn muốn - vì vậy thay vì lọc ra Xoay vòng, chỉ cần "exiftool -Rotation". Thứ ba, bạn không cần quá nhiều "evals" và "if test ..." của bạn nên được thay thế bằng trường hợp $ ROTATION trong - cho cả khả năng đọc và hiệu quả. Chúc may mắn!
Mikhail T.

Không có xúc xắc: [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!
Slipp D. Thompson

2

Câu trả lời của Alex gần như có tác dụng với tôi ngoại trừ việc tôi gặp phải lỗi này:

cơ sở thời gian 1/90000 không được hỗ trợ bởi tiêu chuẩn MPEG 4, giá trị được thừa nhận tối đa cho mẫu số cơ sở thời gian là 65535

Tôi chỉ cần thêm một tham số (-r 65535/2733) vào lệnh và nó đã hoạt động. Lệnh đầy đủ là như vậy:

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

Nếu bạn đang tìm kiếm một khung hình "phim NTSC", thì 24000/1001sẽ chính xác hơn.
Reino

2

Một giải pháp bổ sung với cách tiếp cận khác với các giải pháp được đề cập gần đây, là kiểm tra xem trình điều khiển máy ảnh của bạn có hỗ trợ các điều khiển camera v4l2 (rất phổ biến).
Trong terminal chỉ cần gõ:

v4l2-ctl -L

Nếu trình điều khiển máy ảnh của bạn hỗ trợ các điều khiển camera v4l2, bạn sẽ nhận được một cái gì đó như thế này (danh sách dưới đây phụ thuộc vào các điều khiển mà trình điều khiển máy ảnh của bạn hỗ trợ):

               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

Và nếu bạn là người may mắn nó hỗ trợ horizontal_flipvertical_flip .
Sau đó, tất cả những gì bạn cần làm là đặt vertical_flip theo:

v4l2-ctl --set-ctrl horizontal_flip=1

hoặc vertical_flip bởi:

v4l2-ctl --set-ctrl vertical_flip=1

và sau đó bạn có thể gọi thiết bị video của mình để quay video mới (xem ví dụ bên dưới) và video sẽ được xoay / lật.

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

Tất nhiên là nếu bạn cần xử lý một video đã có sẵn, thì phương pháp này không phải là giải pháp bạn đang tìm kiếm.

Ưu điểm của phương pháp này là chúng ta lật hình ảnh ở cấp độ cảm biến, do đó, cảm biến của trình điều khiển đã cung cấp cho chúng ta hình ảnh bị lật và điều đó giúp ứng dụng (như FFmpeg) không bị xử lý thêm và không cần thiết.


Thông tin tuyệt vời về v4l2 tại đây. Xoay theo hướng chính xác tại thời điểm ghi rõ ràng là tốt hơn :) Câu hỏi gần 10 năm tuổi này (wow!) Ban đầu được hỏi về các video được tải lên từ thiết bị iOS nếu điều đó giúp cung cấp bất kỳ bối cảnh nào :)
vui vẻ vào

Tôi là một người mới trong cộng đồng này và câu hỏi này cũ hơn nhiều so với thâm niên của tôi ở đây ... Tôi thực sự nghĩ rằng đó là một câu hỏi hay (phổ biến), vì vậy tôi tin rằng câu hỏi cũ này sẽ tiếp tục giúp đỡ nhiều người dùng FFmpeg.
JM

1

Thật không may, phiên bản Ubuntu của ffmpeg không hỗ trợ videofilters.

Bạn cần sử dụng avidemux hoặc một số trình soạn thảo khác để đạt được hiệu quả tương tự.

Theo cách lập trình, mencoder đã được đề xuất.


1
Ý của bạn là "phiên bản Ubuntu của ffmpeg không hỗ trợ videofilters"?
dùng1438038

2
FYI: "FFmpeg đã trở lại trong Ubuntu 15.04 Verv Vervet." hoặc có thể được biên dịch cho Ubuntu. -> trac.ffmpeg.org/wiki/CompilationGuide/Ubfox
l --marc l

avconv làm (trong 14.04), và dường như hoạt động chính xác như nhau. (Nhưng đối với các phiên bản mới hơn, chắc chắn sử dụng FFmpeg.)
SilverWolf - Tái lập Monica

1

Điện thoại thông minh: Đã thu hồi video ở định dạng dọc

Muốn gửi nó đến một trang web, nó ở góc 90 ° bên trái (ngược chiều kim đồng hồ, định dạng ngang) hmm.

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

Phải không. Tôi đã nhận được định dạng dọc trở lại một lần nữa

debian buster: ffmpeg --version phiên bản ffmpeg 4.1.4-1 ~ deb10u1 Bản quyền (c) 2000-2019 các nhà phát triển FFmpeg

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.