2012-02-16 3 views
1

MXF 컨테이너에 MPEG2 비디오 파일을 래핑하고 그 과정에서 오디오를 변환해야합니다. MXF 랩핑 작동하지만 오디오 스트림 (16 비트, 48kHz 선형 PCM합니다) 변환 할 수 없습니다.MXF 로의 FFMPEG 변환

ffmpeg -i input.mpg -map 0:0 -map 0:1 -vcodec copy -f mpeg2video -acodec pcm_s16le -ar 48000 -ac 2 output.mxf 

결과 :

는 여기에 내가 노력하고있어입니다

ffmpeg version 0.10 Copyright (c) 2000-2012 the FFmpeg developers 
    built on Jan 30 2012 17:49:23 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) 
    configuration: *{snipped}* 
runtime-cpudetect 
    libavutil  51. 34.101/51. 34.101 
    libavcodec  53. 60.100/53. 60.100 
    libavformat 53. 31.100/53. 31.100 
    libavdevice 53. 4.100/53. 4.100 
    libavfilter  2. 60.100/2. 60.100 
    libswscale  2. 1.100/2. 1.100 
    libswresample 0. 6.100/0. 6.100 
    libpostproc 52. 0.100/52. 0.100 
[mpeg @ 0x10201ae00] max_analyze_duration 5000000 reached at 5000000 
Input #0, mpeg, from '/Volumes/Extra/test.mpg': 
    Duration: 00:00:59.97, start: 0.192911, bitrate: 6513 kb/s 
    Stream #0:0[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s 
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 12000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc 
Output #0, mpeg2video, to 'video.mxf': 
    Metadata: 
    encoder   : Lavf53.31.100 
    Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 12000 kb/s, 25 fps, 90k tbn, 25 tbc 
Stream mapping: 
    Stream #0:1 -> #0:0 (copy) 
Press [q] to stop, [?] for help 
frame= 1500 fps= 0 q=-1.0 Lsize= 43949kB time=00:00:59.96 bitrate=6004.6kbits/s  
video:43949kB audio:0kB global headers:0kB muxing overhead 0.000000% 

비디오는 MXF로 잘 재생하지만, 전혀 오디오 스트림이 없습니다. 어떤 도움이라도 좋을 것입니다.

+2

이것은 프로그래밍 관련 방법입니다. –

답변

0

나는 당신이 지나치게 특정한 것을 생각합니다. 보십시오 : 당신은 하나 개의 오디오와 하나 개의 비디오 스트림을 가진 간단한 입력과 출력 파일과 -map을 필요가 없습니다

ffmpeg -i input.mpg -vcodec copy -acodec pcm_s16le -ar 48000 -ac 2 output.mxf 

. 요즘 ffmpeg는 mxf 파일을 포맷하는 방법을 알고 있으며 확장자에 따라 해당 형식을 사용하는 것으로 추측 할 수 있습니다.

문제점이 오디오를 포함하지 않는 형식 인 mpeg2video ('원시 MPEG-2 비디오')을 지정한 결과로 의심됩니다.

+0

고마워요 blahdiblah하지만 여전히 갈 수 없어. 나는 당신의 제안을 시도한 다음, 한 단계 더 나아가서'ffmpeg -i input.mpg output.mxf'를 취했다. 다른 아이디어? – MFB

1

명령에서 비디오 코덱이 출력 파일 형식으로 지정됩니다. 결과적으로 오디오가 제거되고 출력 파일은 이 아닌 mpeg입니다.

변환

다음과 같은 명령을 수행 할 수 있습니다

ffmpeg -i input.mpg -vcodec mpeg2video -acodec pcm_s16le -ar 48000 -ac 2 output.mxf 

출력 파일 형식은 파일 확장자로 추측됩니다. 또는 -f mxf 옵션을 사용할 수 있습니다. MXF 형식 제한으로 인해 프레임 속도를 -r 25으로 지정해야 할 수 있습니다. 옵션 -vcodec-acodec은 동일한 결과로 생략 될 수 있습니다.