এমকভিতে রিমাক্স করার সময় অ্যাভকনভি ব্যবহার করে, প্যাকড এভিআই ইনপুট ফাইলগুলি ঠিক করার কোনও উপায় আছে?


11

প্লেক্স সার্ভার এবং প্যানাসোনিক টিভিগুলির মধ্যে সামঞ্জস্যতা বাগের কারণে এটি ভালভাবে কাজ করার একমাত্র উপায় হ'ল এমকেভিতে সবকিছুকে রিম্যাক্স করে, সমস্ত স্ট্রিমের সরাসরি অনুলিপি করুন (ভিডিও, অডিও, সাবটাইটেল)

যথেষ্ট সহজ বলে মনে হচ্ছে:

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

প্রথমে এমপি 4 তে রূপান্তরিত করার জন্য একটি কার্যপ্রণালী:

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

দুঃখের বিষয়, কেউ এমকপি 4 ফর্ম্যাটটি অ্যাভকনভ উদাহরণগুলির মধ্যে কেবল পাইপ করতে পারে না: "[এমপি 4 @ 0x80846c0] ম্যাক্সার অনাবলম্বিত আউটপুট সমর্থন করে না"


ধন্যবাদ, আমি আজ সন্ধ্যায় চেষ্টা করে দেখব। আমি ভাবছি যদি এমন কোনও আদেশ আছে যা বাফারের মতো কাজ করে? কমান্ড রচনাটি stdout এ পাস করার আগে স্টিডিনে সম্পূর্ণ হওয়ার অপেক্ষা করে। Stdout অন্বেষণ সঙ্গে। এটা সহজ হবে। avconv -i xxx | buf | avconv -i stdin xxx
RoboJ1M

1
আমি যুক্ত ত্রুটি বার্তাটি বিশেষত অ্যাভকনভের সাথে পাইপ ব্যবহার করার চেষ্টা করার সাথে সম্পর্কিত, কারণ পাইপগুলি সহজাতভাবে অ-অনুসন্ধানযোগ্য হয়। সর্বোত্তম কাজটি হ'ল টিএমপিএফ বা অনুরূপ ইন-মেমরি ফাইল সিস্টেমে টেম্প.এমপি 4 সনাক্ত করা। / dev / shm / এটির জন্য ভাল প্রার্থী, যদি কারও পর্যাপ্ত র‌্যাম থাকে।
rmsr

পাইপিং সম্পর্কিত, আপনি সম্ভবত এটি নামক পাইপগুলি ওরফে ফিফো দিয়ে করতে পারেন। একটি অনুসন্ধান আছে mkfifo। মূলত, আপনি স্টাউটের অস্থায়ী সঞ্চয়স্থান হিসাবে কোনও ফাইল ব্যবহার করেন।
স্পারহাক

এই সমাধানটি ffmpeg
c97

8

এই টিকিট হিসাবে # 1979 এফএফএমপিগ বাগ- ট্র্যাকারে সহজ সমাধান হ'ল এই বাগটি ঠিক করা বা ম্যানুয়ালি -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
এটি এখনও আমাকে একই ত্রুটি দেয়: /
ফেলিক্স

avconv0.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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.