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 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 đó?
Câu trả lời:
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 ...
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. :)
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=1
sẽ 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 ffmpeg
sẽ 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ày và hướ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 .
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 avconv
với các tùy chọn dòng lệnh cơ bản giống như được đưa ra ffmpeg
trong câu trả lời của evilsoup . Rõ ràng, nó không hỗ trợ transpose
tù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:
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 ...
avconv
toàn bộ các dòng lệnh của mình và không chỉ là sự khác biệt từ ffmpeg
lệ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!
-filter:v transpose=1 …
.
Đã 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 ffmpeg
và avconv
bằ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
ffmpeg
làm việc cho tôi (không thử avconv
)
ffmpef
bao gồm rất nhiều tranh luận không cần thiết, cảm ơn!