FFMPEG MP4 के लिए MKV परिवर्तित फ्रेम दर मोड को बदलने का कारण बनता है


0

जब मैं इस आदेश का उपयोग करके MKV से MP4 में वीडियो परिवर्तित करता हूं:

ffmpeg -i input.mkv -vcodec copy -acodec copy output.mp4

कॉन्स्टेंट से लेकर वैरिएबल तक फ्रेम रेट मोड बदलता है, एडोब प्रीमियर में समय के साथ डेसिंक बनता है। क्या फ्रेम दर को स्थिर रखने का कोई तरीका है?

संपादित करें: FFMPEG से कंसोल आउटपुट

F:\Recordings\Gameplay\Test>ffmpeg -i input.mkv -vcodec copy -acodec copy output.mp4
ffmpeg version N-82178-g60178e7 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil      55. 35.100 / 55. 35.100
libavcodec     57. 65.100 / 57. 65.100
libavformat    57. 57.100 / 57. 57.100
libavdevice    57.  2.100 / 57.  2.100
libavfilter     6. 66.100 /  6. 66.100
libswscale      4.  3.100 /  4.  3.100
libswresample   2.  4.100 /  2.  4.100
libpostproc    54.  2.100 / 54.  2.100
Input #0, matroska,webm, from 'input.mkv':
Metadata:
ENCODER         : Lavf57.41.100
Duration: 00:00:10.83, start: 0.000000, bitrate: 8834 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive), 1920x1080, SAR 1:1 DAR 16:9, 1k fps, 60 tbr, 1k tbn, 120 tbc (default)
Metadata:
  DURATION        : 00:00:10.834000000
Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
Metadata:
  title           : Mic
  DURATION        : 00:00:10.797000000
Stream #0:2: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
Metadata:
  title           : Desktop
  DURATION        : 00:00:10.797000000
Stream #0:3: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
Metadata:
  title           : Discord
  DURATION        : 00:00:10.797000000
Output #0, mp4, to 'output.mp4':
Metadata:
encoder         : Lavf57.57.100
Stream #0:0: Video: h264 (Constrained Baseline) ([33][0][0][0] / 0x0021), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1k fps, 60 tbr, 16k tbn, 1k tbc (default)
Metadata:
  DURATION        : 00:00:10.834000000
Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo (default)
Metadata:
  title           : Mic
  DURATION        : 00:00:10.797000000
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  650 fps=0.0 q=-1.0 Lsize=   11681kB time=00:00:10.81    bitrate=8846.5kbits/s speed= 347x
video:11362kB audio:302kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.145660%

F:\Recordings\Gameplay\Test>pause
Press any key to continue . . .

कोडेक्स क्या शामिल हैं?
डैनियल बी

1
आपको अपने कमांड से पूरा कंसोल आउटपुट दिखाना चाहिए। आपको क्या लगता है कि आउटपुट VFR क्यों है?
लोलगन

जोड़ा गया कंसोल आउटपुट, जैसा कि मुझे पता है, न केवल MediaInfo उस फ्रेम दर को चर के रूप में दिखाता है, बल्कि मेरे संपादन सॉफ्टवेयर में ऑडियो डिसेंक ओवरटाइम करता है।
टेम्पेस्ट

क्या आप एक नमूना इनपुट फ़ाइल का लिंक प्रदान कर सकते हैं?
21

मुझे ऐसा करने के बारे में कैसे जाना चाहिए। क्या आपको लगता है कि इसका इनपुट फाइल से कुछ लेना-देना है?
Tempest

जवाबों:


0
-framerate XX

इनपुट के आधार पर -r के साथ निर्दिष्ट करने की आवश्यकता हो सकती है।


मैं दोनों आदेशों की कोशिश की, फ्रेम दर के बाद भी चर रहा था।
टेम्पेस्ट

फिर आपको फ़्रेम को छोड़ने या लक्ष्य फ़्रेमरेट को निर्दिष्ट करने की आवश्यकता हो सकती है। मैं अभी अपने पीसी पर नहीं हूं, लेकिन man ffmpeg आपको
बताऊं

0

शैडोप्ले कैप्चर के साथ शुरू होने वाले परिवर्तनशील हैं।

आपको फिर से उपयोग करके एनकोड करना होगा ffmpeg -i input.mkv -r 60 -acodec copy output.mp4


0

मुझे लगता है कि यह VFR में बदल जाता है क्योंकि आपकी मूल सामग्री (MKV) वास्तव में VFR है, बस गलत टैग है। यह मेरे साथ काम कर रहे कई पुस्तकालयों के बीच एक बहुत ही आम समस्या है।

आप mkvextractहर फ्रेम के टाइमकोड को निकालने के लिए उपयोग कर सकते हैं और बीच में अंतराल की गणना कर सकते हैं कि यह सच है या नहीं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.