Sử dụng ffmpeg để tạo phim từ tệp png


11

Tôi có 277 tệp px 800x600 với tên tệp có định dạng Island_sizes-CSH (II) - ###. Png trong đó ### là một số bắt đầu bằng 084 và kết thúc ở 360.

tôi đang làm

ffmpeg -i island_sizes-CSH\(II\)-*.png output.mpg -y

nhưng nó không hoạt động:

ffmpeg -f image2 -i Island_sizes-CSH \ (II \) - *. png video.mpg -y
ffmpeg phiên bản 1.2.1 Bản quyền (c) 2000-2013 các nhà phát triển FFmpeg
  được xây dựng vào ngày 10 tháng 5 năm 2013 15:14:14 với gcc 4.4.6 (GCC) 20120305 (Mũ đỏ 4.4.6-4)
  cấu hình: --prefix = / usr --libdir = / usr / lib64 --shlibdir = / usr / lib64 --mandir = / usr / share / man --enable-shared --enable-runtime-cpudetect --enable- gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv - libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp - --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags = '- O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 fstack-bảo vệ --param = ssp-buffer-size = 4 -m64 -mtune = generic -fPIC '--disable-tước
  libavutil 52. 18.100 / 52. 18.100
  libavcodec 54. 92.100 / 54. 92.100
  libavformat 54. 63.104 / 54. 63.104
  libavdevice 54. 3.103 / 54. 3.103
  libavfilter 3. 42.103 / 3. 42.103
  libswscale 2. 2.100 / 2. 2.100
  libswresample 0. 17.102 / 0. 17.102
  libpostproc 52. 2.100 / 52. 2.100
Đầu vào # 0, image2, từ 'Island_sizes-CSH (II) -084.png':
  Thời lượng: 00: 00: 00.04, bắt đầu: 0,000000, bitrate: Không áp dụng
    Luồng # 0: 0: Video: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init không thành công
Đầu ra # 0, image2, thành 'Island_sizes-CSH (II) -085.png':
    Luồng # 0: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Đầu ra # 1, image2, thành 'Island_sizes-CSH (II) -086.png':
    Luồng # 1: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
...
Đầu ra # 274, image2, thành 'Island_sizes-CSH (II) -359.png':
    Luồng # 274: 0: Video: none, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Đầu ra # 275, image2, thành 'Island_sizes-CSH (II) -360.png':
    Luồng # 275: 0: Video: none, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Đầu ra # 276, mpeg, thành 'video.mpg':
    Luồng # 276: 0: Video: none, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Ánh xạ dòng:
  Luồng # 0: 0 -> # 0: 0 (png -> png)
  Luồng # 0: 0 -> # 1: 0 (png -> png)
...
  Luồng # 0: 0 -> # 274: 0 (png -> png)
  Luồng # 0: 0 -> # 275: 0 (png -> png)
  Luồng # 0: 0 -> # 276: 0 (png -> mpeg1video)
Lỗi trong khi mở bộ mã hóa cho luồng đầu ra # 218: 0 - có thể các tham số không chính xác như bit_rate, tốc độ, chiều rộng hoặc chiều cao

Từ man mencoder: mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4, tương tự cho ffmpeg
Eddy_Em

1
@Eddy_Em Nó không giống với ffmpeg- mencodercó cú pháp hoàn toàn khác, thật không may.
slhck

1
mencoder đã làm việc cho tôi! Cảm ơn. Thành thật tôi không quan tâm tôi sử dụng chương trình nào - chỉ là tôi có được bộ phim.
thoi

Câu trả lời:


23

Đây là cú pháp sai để truyền nhiều hình ảnh làm đầu vào ffmpeg. Xin vui lòng xem hướng dẫn FFmpeg Wiki về cách tạo trình chiếu video và các image2tùy chọn demuxer .

Bạn cần bảo nó sử dụng ba chữ số cho các số thứ tự và bắt đầu từ 84, tức là

ffmpeg -start_number 84 -i island_sizes-CSH\(II\)-%03d.png output.mpg

Một số lời khuyên khác:

  • MPEG-1 dưới dạng codec video ít hơn tối ưu và cho chất lượng kém ở kích thước tệp cao. Trừ khi bạn muốn tương thích cho các thiết bị hoặc máy tính cũ (hoặc Windows XP mà không cần bất kỳ codec nào), hãy sử dụng bộ mã hóa MPEG-4 Phần 10 (H.264), chẳng hạn như libx264:

    ffmpeg -i … -c:v libx264 out.mp4
    

    Để xem hướng dẫn về các tùy chọn x264 (cách thay đổi chất lượng, v.v.), hãy xem hướng dẫn mã hóa x264 .

  • Các tệp PNG sử dụng định dạng pixel RGB, không được hỗ trợ trong các codec video thông thường. Với MPEG-1, điều đó không thành vấn đề, nhưng với codec MPEG-4, điều đó ffmpegsẽ tự động chuyển đổi định dạng pixel thành YUV không được ghép mẫu. Trong trường hợp đó, bạn cần dịch phần này sang các định dạng được ghép theo sắc độ như YUV 4: 2: 0, nếu không, video của bạn có thể không phát trong hầu hết các ứng dụng:

    ffmpeg -i … -c:v libx264 -pix_fmt yuv420p out.mp4
    

Bạn. Tôi thích bạn.
thoi
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.