Xoay tệp video 90 độ bằng Ubuntu


18

Tôi muốn sử dụng Ubuntu và tốt nhất là các gói tiêu chuẩn như ffmpeg để xoay tệp video .3gp theo 90 độ theo bất kỳ hướng nào. Tốt nhất là một dòng lệnh hoặc tập lệnh Python.

Làm thế nào tôi có thể làm điều đó?


Tôi thấy rằng ffmpeg đã có thể làm điều này. Xem, ví dụ: diễn đàn Ubuntu: xoay video 90 độ
Simon

Câu trả lời:


9

bằng cách sử dụng VLC , bạn có thể xoay video bằng cách đi tới Công cụ >> Tùy chọn ...

Và chọn "Tất cả" cho cài đặt hiển thị. Sau đó truy cập: Video >> Bộ lọc >> Xoay

Sau khi đặt mức độ bạn muốn, bạn có thể xoay bằng cách đi tới Công cụ> Hiệu ứng và Bộ lọc> Hiệu ứng video> Hình học ...

văn bản thay thế

cái tôi đã thử là mp4 nhưng tôi tin rằng VLC cũng có thể hỗ trợ cả MSN. hi vọng điêu nay co ich. :)


13
tôi có thể xem video được xoay, nhưng làm thế nào để bạn thay đổi liên tục
justinhj


17

Từ dòng lệnh, với ffmpeg:

ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
  • transpose=1sẽ xoay video 90 độ theo chiều kim đồng hồ; để xoay ngược chiều kim đồng hồ, sử dụng transpose=2. Xem tài liệu chuyển vị để biết thêm một chút thông tin.

  • -metadata:s:v rotate=""sẽ loại bỏ bất kỳ siêu dữ liệu xoay vòng luồng video hiện có; nếu không ffmpegsẽ sao chép nó có thể khiến người chơi của bạn áp dụng xoay vòng không mong muốn bổ sung.

  • Để biết thông tin về cài đặt mã hóa video tại đây, hãy xem hướng dẫn mã hóa H.264 nàyhướng dẫn mã hóa AAC nếu bạn muốn mã hóa lại âm thanh thay vì sao chép luồng .


Điều này trả lời tốt hơn câu hỏi vì nó giải thích cách thực hiện từ dòng lệnh với ffmpeg, như được chỉ định trong câu hỏi ban đầu. Tôi nghĩ rằng câu trả lời này nên được đánh dấu là chính xác. Kể từ tháng 5 năm 2017 trên Fedora 25, điều này vẫn hoạt động, mặc dù thông báo không dùng cho codec MP4.
Justin W. Flory

4

Avidemux sẽ có thể làm điều này.

Làm Video->Filters->Rotate(x degrees)->Closesau đóFile->Save->Save Video


2

Tôi đã giải quyết một vấn đề tương tự - tôi có một .MOV được đặt lộn ngược (nghĩa là xoay 180 độ) mà tôi muốn đặt đúng.

Trên hệ thống Ubuntu 14.04 của tôi, tôi đã chạy avconvvới các tùy chọn dòng lệnh cơ bản giống như được đưa ra ffmpegtrong câu trả lời của evilsoup . Rõ ràng, nó không hỗ trợ transposetùy chọn xoay 180 độ, vì vậy tôi đã thực hiện 90 độ theo chiều kim đồng hồ (tức là transpose=1) hai lần.

Khi tôi thử các tùy chọn tối thiểu, tôi nhận được một thông báo cho thấy:

encoder 'aac' is experimental and might produce bad results.

Add '-strict experimental' if you want to use it.

và tập tin đầu ra có độ dài bằng không, vì vậy tôi đã thêm -strict experimental.

Các dòng lệnh đã làm việc là:

avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV

Kết quả rất khả quan, với các tác dụng phụ không giải thích được:

  1. Tệp trung gian nhỏ hơn bản gốc ~ 14%.
  2. Tệp kết quả nhỏ hơn trung gian ~ 18% và nhỏ hơn ban đầu gần 30%.
  3. Tệp kết quả hiển thị hình thu nhỏ, trong khi bản gốc và trung gian chỉ hiển thị biểu tượng chung.

Không phải là tôi đang phàn nàn: đây là những mong muốn; Tôi không hiểu tại sao họ lại đến ...


Chào mừng đến với Siêu người dùng. (1) Mặc dù một số thông tin cơ bản trong câu trả lời của bạn có thể hữu ích, tốt nhất bạn nên tập trung vào giải pháp cho vấn đề của mình. Tôi đã chỉnh sửa câu trả lời của bạn để minh họa; vui lòng chỉnh sửa thêm nếu bạn tin rằng tôi đã thay đổi quá nhiều. (2) Thứ tự hiển thị các câu trả lời có thể thay đổi; tốt hơn hết là xác định (các) câu trả lời khác một cách rõ ràng hơn là nói trên trên. (2½) Tôi hy vọng bạn đã trình bày avconvtoàn bộ các dòng lệnh của mình và không chỉ là sự khác biệt từ ffmpeglệnh. Câu trả lời của bạn nên tự túc; câu trả lời khác có thể biến mất. (3) Chúc may mắn!
G-Man nói 'Phục hồi Monica'

Ngoài ra, tôi cho rằng khi bạn nói kết quả của Google là thỏa đáng, bạn có nghĩa là tập tin kết quả của bạn có vẻ tốt như tập tin gốc. Bạn có thể muốn ( chỉnh sửa tin nhắn của bạn) để nói một cách rõ ràng. (Thông tin như vậy - tức là, liệu bạn có bị mất chất lượng video hiển thị trước mắt hay không - rất quan trọng đối với câu trả lời của bạn và không nên bị ẩn đi trong một nhận xét.) Ngoài ra, tôi betcha bạn có thể bỏ qua các trích dẫn và nói -filter:v transpose=1 ….
G-Man nói 'Phục hồi Monica'

2

Đã có một số thay đổi đối với libav kể từ thời điểm câu hỏi này ban đầu được trả lời. Trong nỗ lực để giữ cho hiện tại và hữu ích này, tôi sẽ cung cấp thông tin sau:

Bạn có thể thực hiện điều này với các phiên bản gần đây ffmpegavconvbằng cách sử dụng bộ lọc video chuyển vị.

avconv -i inputfile -vf transpose=clock outputfile

cho quay theo chiều kim đồng hồ.

trong ffmpeg cú pháp là như nhau.

ffmpeg -i inputfile -vf transpose=clock outputfile

trong đó inputfile là tệp video đầu vào được hỗ trợ của bạn và outputfile là tệp đầu ra mong muốn của bạn.

Đối với vòng quay ngược chiều kim đồng hồ thay thế đồng hồ với cclock

Đây là một đoạn trích từ tài liệu:

‘cclock_flip’

    Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’

    Rotate by 90 degrees clockwise.
‘cclock’

    Rotate by 90 degrees counterclockwise.
‘clock_flip’

    Rotate by 90 degrees clockwise and vertically flip. 

Nguồn:

https://libav.org/avconv.html#transpose

https://ffmpeg.org/ffmpeg-filters.html#transpose-1

Thử nghiệm trên Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04


1
Cảm ơn các thông số tối thiểu. ffmpeglàm việc cho tôi (không thử avconv)
Amil Waduwawara

Thông minh! có nhiều bài viết về ffmpefbao gồm rất nhiều tranh luận không cần thiết, cảm ơn!
Mariano Ruiz

@MarianoRuiz Tôi rất vui vì nó đã giúp bạn. ffmpeg luôn trong quá trình phát triển nên theo thời gian mọi thứ thay đổi. Không có gì đáng ngạc nhiên khi các phương pháp dễ dàng tồn tại hơn một số câu trả lời cũ hơn. Chúc mừng!
Anh Cả Geek
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.