flv(h264, aac)에서 h264 비디오 스트림을 역다중화하는 방법이 있습니까?

flv(h264, aac)에서 h264 비디오 스트림을 역다중화하는 방법이 있습니까?

.flv 비디오에서 h264 스트림 역다중화를 사용하면 ffmpeg항상 .mp4 컨테이너로 다시 다중화할 수 없는 스트림이 생성됩니다( MP4Box from package *gpac),또는 사용 ffmpeg).

이것은 "잘못된" 스트림을 생성하는 역다중화 명령입니다..(알 수 없는 형식)

ffmpeg -i "(h264-aac).flv"  # get stream info
  # Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 259 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc

ffmpeg -y -map "0.0" -vcodec copy -an -i "(h264-aac).flv" \
                                         "(h264-aac).flv.h264" 

나는 또한 -f h264를 시도했지만 같은 오류가 발생했습니다.

위 명령은 컨테이너의 비디오에 대해 실행될 때 작동하므로 .mp4이는 flv특정(?)일 수 있습니다.

h264 비디오 스트림을 분리하는 데 가장 가까운 방법은 다음 명령을 사용하는 것입니다. 그러나 이는 flv종횡비를 잃는 컨테이너에 스트림을 래핑합니다.

ffmpeg -y -map "0.0" -vcodec copy -an -i "(h264-aac).flv" \
                                         "(h264-aac).flv.NEW.flv" 

이 비디오 스트림을 가져올 수 있는 방법이 있나요?

추신. 몇 가지 다른 입력 .flv 비디오를 시도했지만...같은 오류가 발생했습니다.

답변1

중간 단계의 목적은 무엇입니까?원시 H.264 스트림을 최종적으로 .mp4 컨테이너에 혼합하기 전에 컨테이너가 아닌 파일로 저장하시겠습니까?

물론 원시 mpeg2 비디오 스트림이나 .aac 오디오 트랙은 컨테이너 오버헤드 없이 저장할 수 있지만 아시다시피 애플리케이션 친화적인 파일 확장자(.avc, .h264, .ts)에 대한 확실한 후보는 그럴 수 없습니다. FFmpeg 또는 VLC가 원시 H.264 스트림을 더 쉽게 조작할 수 있게 해주는 것 같습니다.

H.264 스트림이 .mp4 컨테이너에 있을 예정이라면 비디오 스트림을 .flv 파일에서 .mp4 파일로 직접 복사하고 오디오를 최종 제품 중간에 다중화할 준비가 될 때까지 거기에 저장해 보는 것은 어떨까요? ?

명령줄은 다음과 같습니다.

  ffmpeg -i infile.flv -an -vcodec copy outfile.mp4

FFmpeg가 이 간단한 명령줄에 대한 응답으로 오류 메시지를 표시하면 실제로 파일이 손상된 것일 수 있습니다.

관련 정보