FFMPEG Tách MP4 với chất lượng tương tự


51

Tôi có một tệp MP4 lớn. Tôi đang cố gắng chia nó thành các tập tin nhỏ hơn.

ffmpeg -i largefile.mp4 -sameq -ss 00:00:00 -t 00:50:00 smallfile.mp4

Tôi nghĩ rằng sử dụng -sameq sẽ giữ các cài đặt chất lượng như nhau. Tuy nhiên, tôi không hiểu điều đó.

Tôi đang tìm cách giữ cùng chất lượng (âm thanh / video) và nén với các tệp được chia. Tuy nhiên, cài đặt này làm cho các tệp được chia lớn hơn nhiều.

Tôi cần đặt cờ nào để giữ cùng chất lượng và thuộc tính trong các tệp được chia trong khi vẫn duy trì cùng tỷ lệ chất lượng với kích thước?

Ví dụ: nếu tệp gốc của tôi có dung lượng khoảng 12 GB và 1920x1080 với tốc độ bit là 10617kb / giây và tốc độ khung hình 23 khung hình / giây và âm thanh 6 kênh với tốc độ 317kb / giây, tôi muốn các tệp được chia chỉ bằng một phần ba kích thước này ( nếu tôi chia nó thành ba mảnh).


3
FYI cho bất cứ ai đọc điều này: Đừng sử dụng -sameq, nó không có nghĩa là "cùng chất lượng" .
Zaz

Câu trả lời:


81

Nếu bạn muốn chỉ tách video mà không mã hóa lại, hãy sử dụng copycodec cho âm thanh và video. Thử đi:

ffmpeg -ss 00:00:00 -t 00:50:00 -i largefile.mp4 -acodec copy \
-vcodec copy smallfile.mp4

Lưu ý rằng điều này chỉ tạo ra sự phân chia đầu tiên. Việc tiếp theo có thể được thực hiện bằng một lệnh bắt đầu bằng ffmpeg -ss 00:50:00.

Điều này có thể được thực hiện với một lệnh duy nhất:

ffmpeg -i largefile.mp4 -t 00:50:00 -c copy smallfile1.mp4 -ss 00:50:00 -c copy smallfile2.mp4

Điều này sẽ tạo ra smallfile1.mp4, kết thúc sau 50 phút vào video của tinyefile.mp4 và smallfile2.mp4, bắt đầu từ 50 phút sau và kết thúc ở cuối trangefefile.mp4.


2
Sử dụng phương pháp này trên một tệp mp4, tôi nhận được hai giây đầu tiên của mỗi tệp được tạo dưới dạng khung đóng băng (âm thanh phát bình thường). Bất kỳ lý do được biết đến cho điều này?
Ron harlev

Âm thanh như một con bọ. Cập nhật lên ffmpeg mới nhất.
Robert

@Robert Tôi đã cập nhật nhiều lần kể từ năm 2010. Cảm ơn.
fideli 22/03/2016

@RonHarlev Đây là hành vi hiện đang được mong đợi. Nếu không mã hóa lại, bạn chỉ có thể cắt video ở "khung chính". Các khung ở giữa các khung chính không mang đủ thông tin để tự tạo một hình ảnh hoàn chỉnh. Xem: trac.ffmpeg.org/wiki/Seeking#Seekingwhiled tiếnacodeccopy
Philip Thrasher

3

Một cách khác để làm điều đó là:

// create a 2-min clip
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4

/**
* -i  input file
* -ss start time in seconds or in hh:mm:ss
* -to end time in seconds or in hh:mm:ss
* -c codec to use 
*/

Chất lượng của tệp vẫn giữ nguyên vì chúng tôi sử dụng -c copyđể sao chép luồng âm thanh + video gốc vào đầu ra.

Tham khảo, Danh sách các lệnh FFmpeg thường được sử dụng: DigitalFortress

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.