Не удалось найти тег для кодека h264 в кодеке потока # 0 (преобразование ffmpeg flac в alac) - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь преобразовать аудиофайл flac в аудиофайл alac.Я использую команду ffmpeg в Mac OS Terminal после установки ffmpeg с помощью команды brew install ffmpeg.

После выполнения следующей команды

for name in *.flac; do ffmpeg -nostdin -i "$name" -acodec alac "${name%.*}.m4a"; done

Я получаю следующую ошибку:

Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg (native) -> h264 (libx264))
  Stream #0:0 -> #0:1 (flac (native) -> alac (native))
[ipod @ 0x7fa5c6800000] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0x7fa5c5804a00] using SAR=1/1
[libx264 @ 0x7fa5c5804a00] MB rate (77760000) > level limit (16711680)
[libx264 @ 0x7fa5c5804a00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fa5c5804a00] profile High, level 6.2
[libx264 @ 0x7fa5c5804a00] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[ipod @ 0x7fa5c6800000] Could not find tag for codec h264 in stream #0, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:1 -- 
Conversion failed!

Находится ли проблема в потоке # 0: 1?

Должен ли я использовать

-c:a alac

вместо

-acodec alac

Ответы [ 2 ]

3 голосов
/ 02 апреля 2019

что я сделал было

for name in *.flac; do ffmpeg -nostdin -i "$name" -c:a alac -c:v copy "${name%.*}.m4a"; done
0 голосов
/ 01 апреля 2019
for name in *.flac; do ffmpeg -i "$name" -select_streams a:0 -c:a alac -c:v copy "${name%.*}.m4a"; done

Вы можете использовать -select_streams a: 0, чтобы специально нацелиться на первый аудиопоток.

...