मैं ffmpeg के साथ 2 jpeg (6912x3456 px, फ़ाइलें बड़ी हैं, यह 360 पैनोरमा है) से वीडियो बनाने की कोशिश करता हूं
ffmpeg -r 1/4 -pattern_type glob -i "my_dir/*.jpg" -c:v libx264 -profile:v high -crf 18 -vf "fps=30,format=yuv420p" -movflags +faststart output.mp4
और ffmpeg प्रक्रिया रुक जाती है। मुझे समझ आ गया
ffmpeg version 3.2.15-0+deb9u1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --prefix=/usr --extra-version=0+deb9u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, image2, from 'b90f8cc38a3ec7f6c4665ae0ba0e2b06/*.jpg':
Duration: 00:00:00.08, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 6912x3456, 25 tbr, 25 tbn, 25 tbc
File 'output.mp4' already exists. Overwrite ? [y/N] y
[swscaler @ 0x564d13ed9ac0] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x564d13ecadc0] frame MB size (432x216) > level limit (36864)
[libx264 @ 0x564d13ecadc0] DPB size (4 frames, 373248 mbs) > level limit (1 frames, 184320 mbs)
[libx264 @ 0x564d13ecadc0] MB rate (2799360) > level limit (2073600)
[libx264 @ 0x564d13ecadc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x564d13ecadc0] profile High, level 5.2
[libx264 @ 0x564d13ecadc0] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf57.56.101
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 6912x3456, q=-1--1, 30 fps, 15360 tbn, 30 tbc
Metadata:
encoder : Lavc57.64.101 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[output stream 0:0 @ 0x564d13ec6c60] 100 buffers queued in output stream 0:0, something may be wrong.
और केवल Ctrl+C ही मदद करता है। लेकिन जब फ़ोल्डर में एक jpg फ़ाइल होती है, तो ffmpeg ठीक काम करता है। मेरा ffmpeg कमांड Win10 पर WSL डेबियन के साथ दूसरे पीसी पर ठीक काम करता है। समस्या क्या है?
1 उत्तर
आपका लिंक किया गया x264 बहुत पुराना है और इसलिए इसका अधिकतम स्तर 5.2 है जो 6912x3456@30 स्तर सीमा से अधिक है (जैसा कि आपके ffmpeg प्रक्रिया आउटपुट द्वारा दिखाया गया है)। सीमा से अधिक होने पर हैंग होने का कारण हो सकता है या नहीं भी हो सकता है, मुझे उम्मीद है कि x264 का एक नया संस्करण स्तर 6.0 का समर्थन करेगा और हैंग नहीं होगा। आपके पास कई विकल्प हैं:
- अपने x264 को अपग्रेड करें (और आपका ffmpeg जब आप इसमें हों तो 3.2 शाखा 2016 से है)। देखें संकलन मार्गदर्शिका या नवीनतम ffmpeg डाउनलोड करें जिसमें आधुनिक libx264 शामिल है।
- या स्केल फ़िल्टर जोड़ें और स्तर की सीमा के भीतर रहने का प्रयास करें:
-vf "scale=4096:-2,fps=30,format=yuv420p"
- या
-c:v libx264
के बजाय-c:v libx265
आज़माएं (इसके बारे में जागरूक होने के स्तर भी हैं)। - या हो सकता है कि आपने अभी काफी देर तक इंतजार नहीं किया हो।
संबंधित सवाल
नए सवाल
linux
LINUX QUESTIONS को संबंधित होना चाहिए। इस टैग का उपयोग केवल तभी करें जब आपका प्रश्न लिनक्स एपीआई या लिनक्स-विशिष्ट व्यवहार का उपयोग करके प्रोग्रामिंग से संबंधित हो, न कि केवल इसलिए कि आप लिनक्स पर अपने कोड को चलाने के लिए होते हैं। यदि आपको लिनक्स समर्थन की आवश्यकता है तो आप https://unix.stackexchange.com या विशिष्ट लिनक्स वितरण की स्टैक एक्सचेंज साइट जैसे https://askubuntu.com या https://elementaryos.stackexchange.com/ की कोशिश कर सकते हैं
-r 30
आउटपुट विकल्प का उपयोग करने से कम मेमोरी का उपयोग हो सकता है।