it-swarm-ko.com

ffmpeg를 추출 비디오 파일

비디오에서 오디오를 추출하는 다음 명령을 시도 :
ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3

하지만 출력은 다음과 같습니다.

libavutil     50.15. 1 / 50.15. 1
libavcodec    52.72. 2 / 52.72. 2
libavformat   52.64. 2 / 52.64. 2
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1.19. 0 /  1.19. 0
libswscale     0.11. 0 /  0.11. 0
libpostproc   51. 2. 0 / 51. 2. 0
SamplE.avi: Invalid data found when processing input

아무도 도와 줄 수 있니?

170
user1269669

다시 인코딩하지 않고 오디오 스트림을 추출하려면 :

ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac
  • -vn은 (는) 비디오가 아닙니다.
  • -acodec copy는 이미 거기에있는 동일한 오디오 스트림을 사용한다고 말합니다.

출력을 읽고 올바른 코덱 확장자를 설정하십시오.

320
Paul Irish

AVI에서 고화질 MP3를 인코딩하려면 가변 비트 전송률을 위해 - q : a를 사용하십시오.

ffmpeg -i sample.avi -q:a 0 -map a sample.mp3

비디오에서 오디오 부분 추출- ss 옵션을 사용하여 시작 시간 소인을 지정하고 - t 옵션을 사용하여 인코딩 지속 시간을 지정하십시오 (예 : 3 분 5 초에서 45 초).

ffmpeg -i sample.avi -ss 00:03:05 -t 00:00:45.0 -q:a 0 -map a sample.mp3
  • 시간 소인은 HH : MM : SS.xxx 형식 또는 초 단위 여야합니다.

  • - t 옵션을 지정하지 않으면 끝으로갑니다.

90
Jeremy Thompson

ffmpeg -i sample.avi는 파일에 대한 오디오/비디오 형식 정보를 제공합니다. 입력 스트림을 구문 분석하도록 적절한 라이브러리를 구성했는지 확인하십시오. 또한 파일이 손상되지 않았는지 확인하십시오.

12
smp

명령 줄이 올바르며 유효한 비디오 파일에서 작동합니다. mp3로 작업 할 수있는 올바른 라이브러리를 설치했는지 확인하고 다른 오디오 코덱과 함께 lame o 프로브를 설치하십시오.

보통

ffmpeg -formats

또는

ffmpeg -codecs

당신이 더 많이 알 수 있도록 충분한 정보를 제공 할 것입니다.

12
Álvaro

Mp3 오디오를 인코딩하려면 ffmpeg.org 는 다음 예제를 보여줍니다.

ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3

input.wav를 비디오 파일 이름으로 바꾸면 비디오에서 오디오를 추출했습니다. 2는 190 kb/sec를 의미합니다. 위의 링크에서 다른 품질 수준을 볼 수 있습니다.

6
Suragch

그냥 추측 :

-ab 192

해야한다

-ab 192k

문제가 될 수 있지만 어쩌면 ffmpeg 그것을 해결할만큼 똑똑한 것 같습니다.

2
Chaotic

Avi로 랩핑 된 오디오가 mp3 형식이 아닌 경우, 추가 매개 변수로 -acodec mp3를 지정해야 할 수도 있습니다. 또는 mp3 코덱이 무엇이든간에 (Linux 시스템에서는 아마 -acodec libmp3lame). ffmpeg의 모든 버전이 여전히 해당 스위치를 지원하지는 않지만 -f mp3를 지정하여 mp3에 형식을 "강제 적용"하는 대신 동일한 효과 (플랫폼에 독립적)를 얻을 수도 있습니다. 귀하의 마일리지가 다를 수 있습니다.

2
Xheralt

-b:a 대신 -ab를 사용하십시오. -ab는 구식입니다. 입력 파일 경로가 올바른지 확인하십시오.

비디오에서 오디오를 추출하려면 아래 명령을 사용하고 정상적으로 작동합니다.

String[] complexCommand = {"-y", "-i", inputFileAbsolutePath, "-vn", "-ar", "44100", "-ac", "2", "-b:a", "256k", "-f", "mp3", outputFileAbsolutePath};

이리,

-와이

묻지 않고 출력 파일을 덮어 씁니다.

-나는

ffmpeg는 -i 옵션으로 지정된 임의의 수의 입력 "파일"에서 읽습니다.

-vn

동영상 녹화 사용 중지

-ar

인코딩 된 경우 오디오 스트림의 샘플링 속도를 설정합니다.

오디오 채널 수를 설정하십시오.

-b : a

오디오 비트 전송률 설정

-에프

체재

체크 아웃 this 내 전체 샘플 ffmpeg 안드로이드 프로젝트 github에 대해.

1

변환하지 않고 추출하려면 Linux에서 파일 관리자 사용자 지정 작업으로 컨텍스트 메뉴 항목을 사용하여 다음을 실행합니다 (비디오에 포함 된 오디오 유형을 확인한 후 ogg 오디오가 포함 된 비디오의 예).

bash -c 'ffmpeg -i "$0" -map 0:a -c:a copy "${0%%.*}".ogg' %f 

ffmpeg 명령 ffmpeg -i INPUT -map 0:a -c:a copy OUTPUT을 기반으로합니다.

@LordNeckbeard 의 주석에서 말했듯이 문제없이 -map 0:1를 사용했습니다. "스트림 0:1은 항상 오디오로 보장되지 않습니다. -map 0:a 대신 -map 0:1를 사용하면 모호함을 피할 수 있습니다."

1
user4098390

여기 내가 방금 사용한 내용 :

ffmpeg -i input.mkv -ss 01:06:57 -to 01:21:07 -c:v copy -c:a copy output.mp4

참조 : https://www.arj.no/2018/05/18/trimvideo/

0
alper

여기 내가 방금 사용한 내용 :

ffmpeg -i my.mkv -map 0:3 -vn -b:a 320k my.mp3

옵션 설명 :

  • my.mkv는 소스 비디오 파일이며 다른 형식도 사용할 수 있습니다.
  • -map 0:3는 비디오 파일에서 3 번째 스트림을 원합니다. 거기에 N 파일을 넣으십시오 - 비디오 파일에는 종종 여러 개의 오디오 스트림이 있습니다. 그것을 생략하거나 -map 0:a를 사용하여 기본 오디오 스트림을 가져올 수 있습니다. ffprobe my.mkv를 실행하여 비디오 파일의 스트림을 확인합니다.
  • my.mp3은 대상 오디오 파일 이름이고 ffmpeg는 해당 확장자에서 MP3를 찾습니다. 필자의 경우 소스 오디오 스트림은 ac3 DTS이며 복사는 내가 원한 것이 아닙니다.
  • 320k는 원하는 목표 비트율
  • -vn은 대상 파일에 비디오를 원하지 않는다는 것을 의미합니다.
0
Artem Vasiliev