FFmpeg এর সাথে MXF থেকে MPEG ফর্ম্যাটে রূপান্তর করা হচ্ছে


0

আমরা ffmpeg-0.9.2 এ .mpeg এ .mxf ভিডিও রূপান্তর করার চেষ্টা করছি এবং 0.9.2 সংস্করণটির মত .mxf রূপান্তর সমর্থন করে না। Mpeg তে।

আমরা ffmpeg এর সর্বশেষ 0.11 সংস্করণে স্যুইচ করতে চাই না কারণ সর্বশেষ সংস্করণটির জন্য ভিডিও ফলাফল খুব খারাপ। হয়তো আমরা .mxf বিন্যাস রূপান্তর করার জন্য সঠিক কমান্ড ব্যবহার করছি না।

নীচে রূপান্তর কমান্ডের ত্রুটি হল:

[root@localhost ~]# ffmpeg -i test.mxf  -ac 2 output.mpg                                                                                     ffmpeg version 0.9.2-syslint, Copyright (c) 2000-2012 the FFmpeg developers
  built on Mar  1 2013 22:34:33 with gcc 4.6.3
  configuration: --prefix=/usr/local/cpffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-decoder=liba52 --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/local/cpffmpeg/include/ --extra-ldflags=-L/usr/local/cpffmpeg/lib --enable-version3 --extra-version=syslint
  libavutil    51. 32. 0 / 51. 54.100
  libavcodec   53. 42. 4 / 53. 42. 4
  libavformat  53. 24. 2 / 53. 24. 2
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 53. 0 /  2. 77.100
  libswscale    2.  1. 0 /  2.  1.100
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mxf, from `test.mxf`:
  Duration: 00:00:07.04, start: 0.000000, bitrate: 62580 kb/s
    Stream #0:0: Video: mpeg2video (4:2:2), yuv422p, 720x608 [SAR 608:405 DAR 16:9], 50000 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Stream #0:1: Audio: pcm_s16le, 48000 Hz, 8 channels, s16, 6144 kb/s
File `output.mpg` already exists. Overwrite ? [y/N] y
Incompatible pixel format `yuv422p` for codec `mpeg1video`, auto-selecting format `yuv420p`
[buffer @ 0x8476e0] w:720 h:608 pixfmt:yuv422p tb:1/1000000 sar:608/405 sws_param:
[buffersink @ 0x847b80] auto-inserting filter `auto-inserted scaler 0` between the filter `src` and the filter `out`
[scale @ 0x848220] w:720 h:608 fmt:yuv422p sar:608/405 -> w:720 h:608 fmt:yuv420p sar:608/405 flags:0x4
[mpeg @ 0x84a7a0] VBV buffer size not set, muxing may fail
Output #0, mpeg, to `output.mpg`:
  Metadata:
    encoder         : Lavf53.24.2
    Stream #0:0: Video: mpeg1video, yuv420p, 720x608 [SAR 608:405 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 25 tbc
    Stream #0:1: Audio: mp2, 48000 Hz, 2 channels, s16, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video -> mpeg1video)
  Stream #0:1 -> #0:1 (pcm_s16le -> mp2)
Press [q] to stop, [?] for help
[buffer @ 0x8476e0] Changing frame properties on the fly is not supported.
Failed to inject frame into filter network

সর্বশেষ FFmpeg 1.1.3, 0.11 নয়। আমি শুধু চেক করেছি: এমএক্সএফ ডেমুক্সারটি 0.5 সংস্করণে যোগ করা হয়েছিল, তাই আমি নিশ্চিত যে 0.9.2 এটি সমর্থন করবে।
slhck

উত্তর:


4

আপনি কি এমপিইজি -1 ভিডিও চান? আপনার কমান্ডটি ভিডিওতে একটি স্ট্যান্ডার্ডকে পুনরায় এনকোড করে যা 1993 সালে মুক্তি পায়। আপনি যদি এটির প্রত্যাশিত হিসাবে গুণটি ভাল না হন তবে আমি অবাক হব না।

আপনার উৎস ফাইলটিতে এমপিইজি -২ ভিডিও এবং পিসিএম অডিও রয়েছে, তাই আদর্শভাবে আপনি এটিটিকে একটি এমপিইজি -২ কন্টেইনারে পরিবর্তিত করুন:

ffmpeg -i in.mxf -c copy out.mpg

এটি অডিও এবং ভিডিও উভয় পুনরায় এনকোড করে না, তাই আপনি প্রক্রিয়াটিতে গুণমান হারাবেন না।

তারপরেও, এমএক্সএফ ডেমক্সিংটি 0.5 সংস্করণ থেকে FFmpeg এ সম্পূর্ণরূপে সমর্থিত হওয়া উচিত। যদি আপনি এখনও ট্রান্সকোডিংয়ের সময় ত্রুটি পান এবং আপনি প্রয়োজন শুধু স্ট্রিম অনুলিপি করার পরিবর্তে ট্রান্সকোড, চেষ্টা করুন একটি সাম্প্রতিক স্ট্যাটিক বিল্ড ডাউনলোড আপনার অপারেটিং সিস্টেমের জন্য FFmpeg হোমপেজ থেকে।

এটি MPEG-2 তে ভিডিওটি পুনরায় এনকোড করবে, এর একটি পরিবর্তনশীল মানের 2 (শব্দের মান 2-5, 1-31 থেকে পরিসীমা এবং নিম্নতর অর্থটি ভাল) হবে:

ffmpeg -i in.mxf -c:v mpeg2video -qscale:v 2 -c:a mp2 -b:a 128k out.mpg

আপনি অবশ্যই ধ্রুবক বিটরেট এনকোডিং ব্যবহার করতে পারেন:

ffmpeg -i in.mxf -c:v mpeg2video -b:v 2M -c:a mp2 -b:a 128k out.mpg
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.