Có cách nào để chuyển mã MPEG-PS với mã thời gian không chính xác sang MPEG-4 AVC bằng ffmpeg không?


0

Tôi có một vài tệp video ở MPEG-PS\MPEG-4 Visual\MPEG Audiođịnh dạng, những tệp đó có mã thời gian bị hỏng dẫn đến việc hầu hết người chơi không thể phát chính xác. Khi tôi đang cố mở nó bằng VLC, nó sẽ phát video tốt nhưng tổng chỉ số thời lượng tệp thay đổi liên tục, nhảy qua nhảy lại.

Tôi đã cố gắng chuyển đổi các tập tin thành MPEG-4\AVC\AAClệnh này:

ffmpeg.exe -nostdin -y -loglevel info  -i "D:\input.mp4"  -f mp4  "D:\output.mp4"

Nhưng nó đã dẫn đến một tập tin với thời lượng không chính xác. Phát lại luồng video là tốt nhưng thời lượng chung của tệp kết quả dài hơn một vài giờ, nghĩa là cuối cùng sẽ có một vài khung hình đen và im lặng.

Có cách nào để chuyển đổi MPEG-PS\MPEG-4 Visual\MPEG Audiosang MPEG-4\AVC\AACsửa lỗi hoặc tạo dòng thời gian mới không?


Hãy thửffmpeg.exe -nostdin -y -i "D:\input.mp4" -fflags +genpts -f mp4 "D:\output.mp4"
Gyan

Câu trả lời:


0

Bạn có hai khả năng:

  • sử dụng tham số -t để dừng tại điểm kết thúc mong muốn
  • Sử dụng concatđầu vào: Một clip chính xác rất ngắn (ví dụ 1 Khung màu đen) và sau đó là clip bị lỗi. Với concatđầu vào, ffmpeg sẽ sử dụng dấu thời gian từ đầu vào đầu tiên, sau đó điều chỉnh các dấu thời gian sau để nối liền với nó.

Bạn cũng có thể muốn sử dụng -c copytham số để tránh mã hóa lại nếu không cần thiết.


Có cách nào để bảo ffmpeg dừng ở cuối luồng âm thanh vì nó có vẻ có độ dài chính xác. Nhập thủ công -t cho mọi tệp hoạt động nhưng hơi tẻ nhạt.
dùng3223738

Có: một cái gì đó dọc theo dòng của-i file.mp4 -i file.mp4 -map [0:a] -map [1:v] -c copy -shortest
Eugen Rieck
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.