FFMPEG tạo chuỗi hình ảnh có độ dài bằng với video gốc


1

Tôi đang cố gắng chuyển đổi video thành chuỗi hình ảnh để nhập vào trình chỉnh sửa video của mình. Đầu tiên tôi kiểm tra tốc độ khung hình bằng:

ffprobe -v 0 -of compact=p=0 -select_streams 0 -show_entries stream=r_frame_rate Forest.mp4

trả về

r_frame_rate=30/1

Video gốc là 1 phút 12 giây ...

khi tôi chạy

ffmpeg -i Forest.mp4 -r 30 forest/image-%03d.dpx 

nó trả lại cái này:

ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-9)
  configuration: --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 --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-gnutls --enable-libass --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --disable-stripping
  libavutil      54. 27.100 / 54. 27.100
  libavcodec     56. 41.100 / 56. 41.100
  libavformat    56. 36.100 / 56. 36.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.100 /  1.  2.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Forest.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.36.100
  Duration: 00:01:00.12, start: 0.000000, bitrate: 1277 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1144 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Output #0, image2, to 'forest/image-%03d.dpx':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.36.100
    Stream #0:0(und): Video: dpx, rgb24, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc56.41.100 dpx
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> dpx (native))

và chỉ tạo ra khoảng một giây video.

Tôi muốn nó khớp với nguồn phát, để khi tôi kéo âm thanh và nhập nó vào phần mềm chỉnh sửa của mình, tôi đang cố gắng tìm hiểu chúng sẽ khớp với nhau.


Chỉ cần nhận ra bạn vượt qua nó để Stack Overflow và nó đã được trả lời ở đó là tốt. Crossposting không được khuyến khích: nó lãng phí thời gian, vì vậy hai chúng tôi đã dành thời gian để cung cấp câu trả lời tương tự cho cùng một câu hỏi. Ngoài ra, đó là ngoại lệ tại SO vì đó chỉ dành cho câu hỏi lập trình.
llogan

Câu trả lời:


1

Bởi vì bạn đang xuất ra từng hình ảnh riêng lẻ nên không cần sử dụng -r. Các khung riêng lẻ không có thời lượng, vì vậy thời lượng là vô nghĩa.

Tất cả bạn phải chạy là:

ffmpeg -i Forest.mp4 forest/image-%03d.dpx 
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.