FFMPEG के साथ कॉपी की गई FLV फाइल VLC को छोड़कर किसी भी प्रोग्राम में नहीं खुलेगी


1

मैं YouTube से प्राप्त FLV फ़ाइल में एक ओवरले जोड़ने का प्रयास कर रहा हूं। इनपुट फ़ाइल 4.4MB और खेलने योग्य है, इसलिए यह किसी भी मुद्दे के लिए प्रकट नहीं होता है।

ffmpeg -i input.flv -vf drawtext="fontfile='arial.ttf':text='hello':fontsize=9" output.flv

मैं आश्चर्यजनक रूप से कुछ सेकंड के बाद निम्न आउटपुट प्राप्त करता हूं:

  ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on May 15 2013 13:13:12 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
  configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libfreetype --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid
  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
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.flv':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2010-01-31 13:44:29
  Duration: 00:02:20.85, start: 0.000000, bitrate: 249 kb/s
    Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 22050 Hz, mono, fltp, 56 kb/s
    Metadata:
      creation_time   : 2010-01-31 13:44:29
      handler_name    : (C) 2007 Google Inc. v08.13.2007.
    Stream #0:1(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 191 kb/s, 29.84 fps, 29.97 tbr, 30k tbn, 29.97 tbc
    Metadata:
      creation_time   : 2010-01-31 13:44:29
      handler_name    : (C) 2007 Google Inc. v08.13.2007.
File 'output.flv' already exists. Overwrite ? [y/N] y
Output #0, flv, to 'output.flv':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf54.63.104
    Stream #0:0(und): Video: flv1 ([2][0][0][0] / 0x0002), yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 1k tbn, 29.97 tbc
    Metadata:
      creation_time   : 2010-01-31 13:44:29
      handler_name    : (C) 2007 Google Inc. v08.13.2007.
    Stream #0:1(und): Audio: mp3 ([2][0][0][0] / 0x0002), 22050 Hz, mono, fltp
    Metadata:
      creation_time   : 2010-01-31 13:44:29
      handler_name    : (C) 2007 Google Inc. v08.13.2007.
Stream mapping:
  Stream #0:1 -> #0:0 (mpeg4 -> flv)
  Stream #0:0 -> #0:1 (aac -> libmp3lame)
Press [q] to stop, [?] for help
frame= 4201 fps=1386 q=10.0 Lsize=    4304kB time=00:02:20.85 bitrate= 250.3kbits/s    
video:3603kB audio:550kB subtitle:0 global headers:0kB muxing overhead 3.618454%

अब output.flv को क्विकटाइम द्वारा अनएप्लेबल छोड़ दिया जाता है, और फ्लैश शिकायत करता है कि ऑडियो कोडेक समर्थित नहीं है। इसे सफलतापूर्वक खेलने में सक्षम एकमात्र कार्यक्रम VLC है। इसका filesize input.flv जैसा ही है। इसका कारण क्या हो सकता है, और कौन से विकल्प एक खेलने योग्य प्रति उत्पन्न कर सकते हैं?

अपडेट करें

विभिन्न एनकोडर का उपयोग करने से प्राप्त आउटपुट छोटा:

ffmpeg -i input.flv -c:v libxvid -c:a copy -q:v 5 output2.flv
...
Stream mapping:
  Stream #0:1 -> #0:0 (mpeg4 -> libxvid)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 4201 fps=303 q=5.0 Lsize=    6597kB time=00:02:20.85 bitrate= 383.7kbits/s    
video:5491kB audio:968kB subtitle:0 global headers:0kB muxing overhead 2.120003%


ffmpeg -i input.flv -c:v mpeg4 -c:a copy -q:v 5 output3.flv
...
Stream mapping:
  Stream #0:1 -> #0:0 (mpeg4 -> mpeg4)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 4201 fps=2523 q=5.0 Lsize=    6852kB time=00:02:20.85 bitrate= 398.5kbits/s    
video:5746kB audio:968kB subtitle:0 global headers:0kB muxing overhead 2.044082%


ffmpeg -i input.flv -c copy outputcopy.flv
...
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 4201 fps=0.0 q=-1.0 Lsize=    4394kB time=00:02:20.85 bitrate= 255.6kbits/s    
video:3289kB audio:968kB subtitle:0 global headers:0kB muxing overhead 3.216934%

इन फ़ाइलों में से किसी पर जानकारी प्राप्त करने से मुझे निम्न प्रकार की बहुत सी त्रुटियाँ मिलती हैं (जहाँ n एक बढ़ता हुआ पूर्णांक है):

- Stream discovered after head already parsed
- header damaged
- max_analyze_duration 5000000 reached at 5014000 microseconds
- Could not find codec parameters for stream n (Video: mpeg4, yuv420p): unspecified size
  Consider increasing the value for the 'analyzeduration' and 'probesize' options
- decoding for stream n failed

इसके बाद टाइप के संदेश आते हैं:

Stream #0:n: Video: mpeg4, yuv420p, 1k tbr, 1k tbn

मैंने मैकफ़ॉर्ट्स के माध्यम से सिर्फ ffmpeg और उसकी निर्भरता को अपग्रेड किया है और अभी भी भाग्य से बाहर हूं। यह हर FLV फ़ाइल के लिए हो रहा है जिसे मैंने YouTube और अन्य जगहों से आज़माया है।

जवाबों:


5

फ्लैश वीडियो

विनिर्देश के अनुसार , फ्लैश वीडियो केवल VP-6 और H.264 वीडियो को मूल रूप से, कुछ अन्य लोगों के बीच समर्थन करता है। इसका मतलब है कि आप FFmpeg के flvएनकोडर का उपयोग करने के लिए छड़ी करने जा रहे हैं , या आप libx264एनकोडर के साथ H.264 पर स्विच करते हैं - आपके द्वारा उपयोग किए जा सकने वाले विकल्पों के लिए x264 एन्कोडिंग गाइड देखें :

ffmpeg -i input.flv … -c:v libx264 output.flv

इसलिए आप MPEG-4 भाग 2 एन्कोडर का उपयोग नहीं कर सकते हैं mpeg4या libxvid, क्योंकि वे केवल लिबावफॉर्म-आधारित खिलाड़ियों में समर्थित हैं , जिसमें एंड्रॉइड फोन से लेकर वीएलसी तक कुछ भी शामिल है, लेकिन - निश्चित रूप से - QuickTime नहीं।

जल्दी समय

QuickTime के लिए, यह आधिकारिक तौर पर FLV का समर्थन नहीं करता है । दुर्भाग्य से यह मान लेना पूरी तरह से उचित है कि QuickTime सभी फ़ाइलों को नहीं चला सकता है। पेरियन (अब ईओएल) को स्थापित करने से इसे कुछ एफएलवी फ़ाइलों को खेलना चाहिए , लेकिन सभी नहीं।

जैसे विनिर्देश की भविष्यवाणी होती है, मैंने इसे केवल flvएनकोडर के साथ FLV फ़ाइलों को चलाने के लिए प्राप्त किया है क्योंकि इसे अंदर बुलाया गया है ffmpeg, जो कि सोरेनसन स्पार्क H.263 कोडेक और libx264एनकोडर है।

ऑडियो

FLV MP3 और AAC दोनों को सपोर्ट करता है, इसलिए मुझे नहीं पता कि फ्लैश के साथ क्या हो रहा है। तुम एक AAC एनकोडर की कोशिश करना चाहते हो सकता है:

ffmpeg -i input.flv … -c:a aac -strict experimental output.flv

… या आपके द्वारा समर्थित किसी अन्य AAC एन्कोडर का उपयोग करें।


-c:v mpeg4मुझे इसी तरह के परिणाम देता है। -c:v libxvidप्रक्रिया के लिए अधिक यथार्थवादी मात्रा में समय लगता है, लेकिन फिर भी एक खेलने योग्य उत्पादन नहीं करता है। यहां तक ​​कि ffmpeg -i input.flv -c:v copy -c:a copy output.flvफिल्टर के बिना एक सीधी कॉपी कमांड दुर्भाग्य से काम नहीं करती है।
डान्रोनमून

कृपया अन्य कमांड के अपने आउटपुट को कम न करें। यदि यह प्रश्न निकाय के लिए बहुत लंबा है, तो इसे पेस्टबोर्ड पर पेस्ट करें - इससे समस्याओं को पहचानना आसान हो जाएगा। क्या आपके पास नमूना हो सकता है? क्या फाइल खेलती है, वीएलसी में कहते हैं?
slhck

पिछले 3 के लिए छोटा आउटपुट शीर्ष पर पहला पूर्ण आउटपुट (मूल फ़ाइल के लिए मेटाडेटा का गुच्छा) के समान था। ठीक है, मुझे अपने मूल आदेश (साथ ही output3.flv, इसके लिए धन्यवाद) स्वीकार करना होगा VLC के साथ काम करता है, लेकिन किसी और चीज के साथ नहीं (फ्लैश का कहना है कि ऑडियो कोडेक समर्थित नहीं है)। यह अच्छी खबर है लेकिन मुझे लगता है कि अन्य वीडियो खिलाड़ियों में प्लेबैक की उम्मीद करना उचित है, इसलिए मैं इस सवाल का जवाब दे रहा हूं।
डान्रोनमून

थोड़ा मुश्किल लगता है। QuickTime के साथ आपको मेरे परीक्षण के अनुसार आधिकारिक तौर पर समर्थित FLV वीडियो कोडेक्स का उपयोग करना होगा। YouTube से एक FLV कंटेनर में एमपीईजी -4 पार्ट 2 वीडियो स्ट्रीम अभी तक नहीं मिल पाया है, हालांकि - लगता है कि मुझे या तो H.264 या Sorenson H.263-encoded मिलें।
slhck

-c:a aacffmpeg को लटका देने का कारण बनता है, मुझे एक नया टर्मिनल बंद करने और खोलने के लिए मजबूर करता है। -c:a mp3अभी भी क्यूटी के साथ एक फ़ाइल का उत्पादन नहीं करता है। Youtube id यह प्रश्न rNp-cj5dEA8 पर आधारित है। यदि आप मुझे एक YT आईडी और संबंधित आदेश दे सकते हैं जो आपके लिए काम करता है (मूल और क्यूटी द्वारा खेलने योग्य दोनों को कॉपी करता है), मैं इसे आज़मा सकता हूं और देख सकता हूं कि क्या यह मेरी मशीन पर काम करता है। BTW आप किस प्रकार का ffmpeg का निर्माण करते हैं? सोचने के लिए मुझे डाउनग्रेड करना होगा या फिर से इंस्टॉल करना होगा।
डान्रोनमून
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.