Chắc chắn có thể. Trong các phiên bản gần đây của ffmpeg, chúng đã thêm cờ -stream_loop cho phép bạn lặp lại đầu vào nhiều lần theo yêu cầu.
Lưu ý là nếu bạn không tạo lại các điểm từ nguồn, ffmpeg sẽ thả khung sau vòng lặp đầu tiên (vì dấu thời gian sẽ đột ngột quay trở lại đúng lúc). Để tránh điều này, bạn cần phải nói với ffmpeg để tạo ra các điểm để bạn có được một dấu thời gian tăng dần giữa các vòng lặp. Điều này được thực hiện với các cuộc gọi + gen (nó phải được trước khi -i arg).
Dưới đây là ví dụ về cuộc gọi ffmpeg (thay thế $ F bằng tệp nhập của bạn). Ví dụ này tạo ra hai luồng đầu ra và đối số -stream_loop -1 báo cho ffmpeg liên tục lặp đầu vào. Đầu ra trong trường hợp này là cho một luồng truyền phát tương tự (MetaCDN), điều chỉnh cho phù hợp với yêu cầu của bạn.
ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i $F \
-s 640x360 -ac 2 -f flv -vcodec libx264 -profile:v baseline -b:v 600k -maxrate 600k -bufsize 600k -r 24 -ar 44100 -g 48 -c:a libfdk_aac -b:a 64k "rtmp://publish.live.metacdn.com/2050C7/dfsdfsd/lowquality_664?hello&adbe-live-event=lowquality_" \
-s 1920x1080 -ac 2 -f flv -vcodec libx264 -profile:v baseline -b:v 2000k -maxrate 2000k -bufsize 2000k -r 24 -ar 44100 -g 48 -c:a libfdk_aac -b:a 64k "rtmp://publish.live.metacdn.com/2050C7/dfsdfsd/highquality_2064?mate&adbe-live-event=highquality_"
Nguồn
2015-12-15 03:34:02
tôi đã phải sử dụng những lập luận để làm cho nó hoạt động đúng: '-f lavfi -re -fflags + genpts -i "phim = GleamingThatBrownbutterfly.webm: loop = 0, setpts = N/(FRAME_RATE * TB) "'. Không có những thứ đó, nó dừng lại sau vòng đầu tiên và phần còn lại của các khung hình bị bỏ. – jadkik94