Kagami / ffmpeg.js

Port of FFmpeg with Emscripten
Other
3.29k stars 335 forks source link

Problem with MP3 cutting #90

Closed fujinxiang closed 4 years ago

fujinxiang commented 4 years ago

repo demo is here. I have some mp3 files local, some cut result is ok, but some 320kbps mp3 file cut result size 0. are there any arguments missing? or the mp3 file is wrong?

when i run ffmpeg -i demo-B.mp3 -ss 01:10 -t 16 outpu.mp3 with ffmpeg.exe on Win10, result is ok what's the different between ffmpeg-worker-mp4.js with ffmpeg.exe?

tpetry commented 4 years ago

You have in a bug in your code so you have been unable to see the problem ;)

FFmpeg is writing progress information on stderr and not stdout so you have not seen the log FFmpeg generates:

ffmpeg version n3.1.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with emcc (Emscripten gcc/clang-like replacement) 1.36.7 ()
  configuration: --cc=emcc --enable-cross-compile --target-os=none --arch=x86 --disable-runtime-cpudetect --disable-asm --disable-fast-unaligned --disable-pthreads --disable-w32threads --disable-os2threads --disable-debug --disable-stripping --disable-all --enable-ffmpeg --enable-avcodec --enable-avformat --enable-avutil --enable-swresample --enable-swscale --enable-avfilter --disable-network --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --enable-decoder=vp8 --enable-decoder=vp9 --enable-decoder=theora --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=h264 --enable-decoder=hevc --enable-decoder=png --enable-decoder=mjpeg --enable-decoder=vorbis --enable-decoder=opus --enable-decoder=mp3 --enable-decoder=ac3 --enable-decoder=aac --enable-decoder=ass --enable-decoder=ssa --enable-decoder=srt --enable-decoder=webvtt --enable-demuxer=matroska --enable-demuxer=ogg --enable-demuxer=avi --enable-demuxer=mov --enable-demuxer=flv --enable-demuxer=mpegps --enable-demuxer=image2 --enable-demuxer=mp3 --enable-demuxer=concat --enable-protocol=file --enable-filter=aresample --enable-filter=scale --enable-filter=crop --enable-filter=overlay --disable-bzlib --disable-iconv --disable-libxcb --disable-lzma --disable-sdl --disable-securetransport --disable-xlib --disable-zlib --enable-encoder=libx264 --enable-encoder=libmp3lame --enable-encoder=aac --enable-muxer=mp4 --enable-muxer=mp3 --enable-muxer=null --enable-gpl --enable-libmp3lame --enable-libx264 --extra-cflags=-I../lame/dist/include --extra-ldflags=-L../lame/dist/lib
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 41.100 / 57. 41.100
  libavfilter     6. 47.100 /  6. 47.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
[mp3 @ 0x81c6a0] Warning: not compiled with thread support, using thread emulation
[mjpeg @ 0x81d190] Warning: not compiled with thread support, using thread emulation
Input #0, mp3, from 'input.mp3':
  Metadata:
    encoder         : Lavf57.71.100
    album           : Havana
    title           : Havana
    artist          : Camila Cabello/Young Thug
    disc            : 1
    track           : 1
  Duration: 00:03:36.95, start: 0.025056, bitrate: 321 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
    Metadata:
      encoder         : Lavc57.89
    Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 640x640 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      comment         : Media (e.g. label side of CD)
Output #0, mp3, to 'output.mp3':
  Metadata:
    encoder         : Lavf57.71.100
    album           : Havana
    title           : Havana
    artist          : Camila Cabello/Young Thug
    disc            : 1
    track           : 1
    Stream #0:0: Unknown: none
    Metadata:
      comment         : Media (e.g. label side of CD)
    Stream #0:1: Unknown: none
    Metadata:
      encoder         : Lavc57.89
Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg (native) -> ? (?))
  Stream #0:0 -> #0:1 (copy)
Encoder (codec png) not found for output stream #0:0

So the build you're using is missing the png codec for the video stream (the music cover). You can either

Kagami commented 4 years ago

Thanks for your help @tpetry. Seems like we can close it.

fujinxiang commented 4 years ago

@tpetry Thank you, I got it! use '-vn' is ok.