एवोकॉन का उपयोग करते समय, जब एमकेवी को रिमूक्स किया जाता है, क्या पैक्ड एवीआई इनपुट फ़ाइलों को ठीक करने का एक तरीका है?


11

Plex सर्वर और पैनासोनिक टीवी के बीच संगतता बग के कारण, इसे अच्छी तरह से काम करने का एकमात्र तरीका MKV को सब कुछ ठीक है, सभी स्ट्रीम (वीडियो, ऑडियो, उपशीर्षक) की प्रतिलिपि बनाएँ

काफी सरल लगता है:

avconv -i "input.avi" -c copy "output.mkv"

के सिवाय:

avconv version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
  built on Apr  2 2013 17:00:59 with gcc 4.6.3
[mpeg4 @ 0x8422140] Invalid and inefficient vfw-avi packed B frames detected
Input #0, avi, from 'input.avi':
  Metadata:
    encoder         : VirtualDubMod 1.5.4.1 (build 2117/release)
  Duration: 00:27:38.52, start: 0.000000, bitrate: 1173 kb/s
    Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x352 [PAR 1:1 DAR 20:11], 25 tbr, 25 tbn, 25 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 132 kb/s
File 'output.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'output.mkv':
  Metadata:
    encoder         : Lavf53.21.1
    Stream #0.0: Video: mpeg4, yuv420p, 640x352 [PAR 1:1 DAR 20:11], q=2-31, 1k tbn, 25 tbc
    Stream #0.1: Audio: libmp3lame, 48000 Hz, stereo, 132 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
[matroska @ 0x8422cc0] Can't write packet with unknown timestamp
av_interleaved_write_frame(): Invalid argument

प्रासंगिक गोच लाइनों के साथ:

[mpeg4 @ 0x8422140] Invalid and inefficient vfw-avi packed B frames detected#
<snip>
[matroska @ 0x8422cc0] Can't write packet with unknown timestamp
av_interleaved_write_frame(): Invalid argument

मैं बी फ्रेम को अनपैक करने का विकल्प नहीं देख सकता (या वीबीआर टाइममैप का निर्माण कर सकता हूं? क्या हमें एवोक में उन लोगों की आवश्यकता है?)

क्या ऐसा करने का कोई तरीका है, जैसे कि एविडेमक्स में?

जवाबों:


8

पहले .mp4 में कनवर्ट करने के लिए एक वर्कअराउंड है:

avconv -i input.avi -c copy temp.mp4
avconv -i temp.mp4 -c copy output.mkv
rm temp.mp4

अफसोस की बात है, एक बस mp4 प्रारूप avconv उदाहरणों के बीच पाइप नहीं कर सकता है: "[mp4 @ 0x80846c0] muxer गैर साध्य उत्पादन का समर्थन नहीं करता है"


धन्यवाद, मैं इसे आज शाम को आजमाऊंगा। मुझे आश्चर्य है कि क्या कोई कमांड है जो बफर की तरह काम करता है? यह सब stdout करने के लिए पारित करने से पहले पूरा करने के लिए stdin आदेश लिखने के लिए इंतजार कर रहा है। स्टडआउट पर तलाश के साथ। वह आसान होगा। avconv -i xxx | buf | avconv -i stdin xxx
रोबोजेएम 1

1
त्रुटि संदेश जो मैंने जोड़ा है वह विशेष रूप से एवोकन के साथ पाइप का उपयोग करने की कोशिश से संबंधित है, क्योंकि पाइप स्वाभाविक रूप से गैर-खोज योग्य हैं। सबसे अच्छा एक tmpfs या इसी तरह की मेमोरी फाइल सिस्टम पर temp.mp4 का पता लगाना है। / dev / shm / इसके लिए एक अच्छा उम्मीदवार है, अगर किसी के पास पर्याप्त रैम है।
rmsr

पाइपिंग के बारे में, आप शायद इसे पाइप्स उर्फ ​​पंद्रो नाम से कर सकते हैं। के लिए एक खोज है mkfifo। अनिवार्य रूप से, आप स्टाउट के लिए एक अस्थायी भंडारण के रूप में एक फ़ाइल का उपयोग करते हैं।
स्पार्कवॉक

यह समाधान ffmpeg के लिए भी काम करता है
c97

8

इस टिकट के रूप में # 1979 ffmpeg बगट्रैक्टर में सबसे सरल उपाय इस बग को ठीक करना या मैन्युअल रूप -fflags +genptsसे कमांड लाइन में जोड़ना है।

यानी बदलाव

ffmpeg -i inputfile_that_cant_be_muxed_into_mkv.ext -c copy out.mkv

सेवा

ffmpeg -fflags +genpts -i inputfile_that_cant_be_muxed_into_mkv.ext -c copy out.mkv

1
यह अभी भी मुझे वही त्रुटि देता है: /
फेलिक्स

avconvसंस्करण 0.8.16 के साथ मेरे लिए काम करता है , जब तक कि यह Can't write packet with unknown timestampफ़ाइल के अंत में एक विषम प्रदर्शित नहीं करता है। अजीब।
मालत

2
सुनिश्चित करें कि -fflagsइनपुट विकल्प के रूप में उपयोग किया जाता है: इसे आपके सामने जाना होगा -i input। लेकिन शायद यह बिल्कुल भी काम नहीं करता अगर आपने +genptsसही जगह पर नहीं रखा होता।
पीटर कॉर्ड्स

यह avconv9.18-6: 9.18-0ubuntu0.14.04.1 के साथ ठीक काम करता है
एल्डर गीक

2

एंड्रियास कैडलपुन के लिए धन्यवाद ffmpegअब नया फिल्टर है: mpeg4_unpack_bframes( रेफरी देखें )। यह आपको संदेश से छुटकारा पाने की अनुमति देगा Invalid and inefficient vfw-avi packed B frames detected:।

उपयोग के रूप में सरल है:

ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.