Closed Wikinaut closed 9 years ago
Post the full output you get when running with --verbose
option.
Post the output of ffmpeg -version
.
Could you post the output of ffmpeg -y -i 'Nancy Sinatra - These Boots Are Made for Walkin'"'"' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.f137.mp4' -i 'Nancy Sinatra - These Boots Are Made for Walkin'"'"' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.f141.m4a' -c copy -map 0:v:0 -map 1:a:0 'Nancy Sinatra - These Boots Are Made for Walkin'"'"' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.temp.mp4'
(the command listed in the youtube-dl output)? Feel free to directly paste it in the issue.
Here is output of ffmpeg command:
ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8 (SUSE Linux)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include/ffmpeg --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-pic --disable-stripping --enable-shared --disable-static --enable-runtime-cpudetect --enable-gpl --disable-openssl --enable-frei0r --enable-gnutls --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-pic --enable-pthreads --enable-vaapi --enable-vdpau --enable-x11grab --disable-encoders --disable-decoders --disable-muxers --disable-demuxers --enable-encoder='flac,gif,jpegls,libopenjpeg,libtheora,libvorbis,libvpx,png' --enable-decoder='flac,gif,jpegls,ljpeg,libopenjpeg,libtheora,libvpx,png,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp' --enable-muxer='flac,gif,image2,image2pipe,matroska,matroska_audio,null,webm' --enable-demuxer='flac,gif,image2,image2pipe,matroska'
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Nancy Sinatra - These Boots Are Made for Walkin' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.f137.mp4':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
creation_time : 2014-05-17 15:50:43
Duration: 00:02:39.93, start: 0.000000, bitrate: 3576 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 3573 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
Metadata:
creation_time : 2014-05-17 15:50:43
handler_name : VideoHandler
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'Nancy Sinatra - These Boots Are Made for Walkin' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.f141.m4a':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6mp41
creation_time : 2014-05-17 15:49:32
Duration: 00:02:40.06, start: 0.000000, bitrate: 255 kb/s
Stream #1:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, 2 channels, 253 kb/s (default)
Metadata:
creation_time : 2014-05-17 15:49:32
handler_name : SoundHandler
[NULL @ 0x187e2c0] Unable to find a suitable output format for 'Nancy Sinatra - These Boots Are Made for Walkin' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.temp.mp4'
Nancy Sinatra - These Boots Are Made for Walkin' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.temp.mp4: Invalid argument
I think this part of the configuration is relevant:
--disable-encoders --disable-decoders --disable-muxers --disable-demuxers --enable-encoder='flac,gif,jpegls,libopenjpeg,libtheora,libvorbis,libvpx,png' --enable-decoder='flac,gif,jpegls,ljpeg,libopenjpeg,libtheora,libvpx,png,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp' --enable-muxer='flac,gif,image2,image2pipe,matroska,matroska_audio,null,webm' --enable-demuxer='flac,gif,image2,image2pipe,matroska'
Does it work if you tell it you output an mkv file: ffmpeg -y -i 'Nancy Sinatra - These Boots Are Made for Walkin'"'"' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.f137.mp4' -i 'Nancy Sinatra - These Boots Are Made for Walkin'"'"' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.f141.m4a' -c copy -map 0:v:0 -map 1:a:0 'Nancy Sinatra - These Boots Are Made for Walkin'"'"' 1966 [HD 1080p] [Best Quality]-Lk0GQWlN6kc.temp.mkv'
?
Does it works if you specify
mkv works.
Here is the output of ffmpeg -formats
:
Linux-4.0.1-1-desktop-x86_64-with-SuSE-20150508-x86_64:
File formats:
D. = Demuxing supported
.E = Muxing supported
--
DE alsa ALSA audio output
D asf ASF (Advanced / Active Streaming Format)
D dv DV (Digital Video)
D dv1394 DV1394 A/V grab
DE fbdev Linux framebuffer
E ffm FFM (FFserver live feed)
DE flac raw FLAC
DE gif GIF Animation
DE image2 image2 sequence
DE image2pipe piped image2 sequence
D jack JACK Audio Connection Kit
D lavfi Libavfilter virtual input device
D libcdio
D libdc1394 dc1394 v.2 A/V grab
E matroska Matroska
D matroska,webm Matroska / WebM
D mov,mp4,m4a,3gp,3g2,mj2 QuickTime / MOV
D mpegts MPEG-TS (MPEG-2 Transport Stream)
E null raw null video
DE oss OSS (Open Sound System) playback
DE pulse Pulse audio output
D rm RealMedia
D rtsp RTSP input
E sdl SDL output device
E v4l2 Video4Linux2 output device
D video4linux2,v4l2 Video4Linux2 device grab
E webm WebM
D x11grab X11 screen capture, using XCB
Ubuntu:
File formats:
D. = Demuxing supported
.E = Muxing supported
--
E 3g2 3GP2 (3GPP2 file format)
E 3gp 3GP (3GPP file format)
D 4xm 4X Technologies
E a64 a64 - video for Commodore 64
D aac raw ADTS AAC (Advanced Audio Coding)
DE ac3 raw AC-3
D act ACT Voice file format
D adf Artworx Data Format
D adp ADP
E adts ADTS AAC (Advanced Audio Coding)
DE adx CRI ADX
D aea MD STUDIO audio
D afc AFC
DE aiff Audio IFF
DE alaw PCM A-law
D alias_pix Alias/Wavefront PIX image
DE alsa ALSA audio output
DE amr 3GPP AMR
D anm Deluxe Paint Animation
D apc CRYO APC
D ape Monkey's Audio
D apng Animated Portable Network Graphics
D aqtitle AQTitle subtitles
DE asf ASF (Advanced / Active Streaming Format)
E asf_stream ASF (Advanced / Active Streaming Format)
DE ass SSA (SubStation Alpha) subtitle
DE ast AST (Audio Stream)
DE au Sun AU
DE avi AVI (Audio Video Interleaved)
D avisynth AviSynth script
E avm2 SWF (ShockWave Flash) (AVM2)
D avr AVR (Audio Visual Research)
D avs AVS
D bethsoftvid Bethesda Softworks VID
D bfi Brute Force & Ignorance
D bin Binary text
D bink Bink
DE bit G.729 BIT file format
D bmp_pipe piped bmp sequence
D bmv Discworld II BMV
D boa Black Ops Audio
D brender_pix BRender PIX image
D brstm BRSTM (Binary Revolution Stream)
D c93 Interplay C93
DE caf Apple CAF (Core Audio Format)
DE cavsvideo raw Chinese AVS (Audio Video Standard) video
D cdg CD Graphics
D cdxl Commodore CDXL video
D cine Phantom Cine
D concat Virtual concatenation script
E crc CRC testing
E dash DASH Muxer
DE data raw data
DE daud D-Cinema audio
D dfa Chronomaster DFA
DE dirac raw Dirac
DE dnxhd raw DNxHD (SMPTE VC-3)
D dpx_pipe piped dpx sequence
D dsf DSD Stream File (DSF)
D dsicin Delphine Software International CIN
D dss Digital Speech Standard (DSS)
DE dts raw DTS
D dtshd raw DTS-HD
DE dv DV (Digital Video)
D dv1394 DV1394 A/V grab
D dvbsub raw dvbsub
E dvd MPEG-2 PS (DVD VOB)
D dxa DXA
D ea Electronic Arts Multimedia
D ea_cdata Electronic Arts cdata
DE eac3 raw E-AC-3
D epaf Ensoniq Paris Audio File
D exr_pipe piped exr sequence
DE f32be PCM 32-bit floating-point big-endian
DE f32le PCM 32-bit floating-point little-endian
E f4v F4V Adobe Flash Video
DE f64be PCM 64-bit floating-point big-endian
DE f64le PCM 64-bit floating-point little-endian
DE fbdev Linux framebuffer
DE ffm FFM (FFserver live feed)
DE ffmetadata FFmpeg metadata in text
D film_cpk Sega FILM / CPK
DE filmstrip Adobe Filmstrip
DE flac raw FLAC
D flic FLI/FLC/FLX animation
DE flv FLV (Flash Video)
E framecrc framecrc testing
E framemd5 Per-frame MD5 testing
D frm Megalux Frame
DE g722 raw G.722
DE g723_1 raw G.723.1
D g729 G.729 raw format demuxer
DE gif GIF Animation
D gsm raw GSM
DE gxf GXF (General eXchange Format)
DE h261 raw H.261
DE h263 raw H.263
DE h264 raw H.264 video
E hds HDS Muxer
DE hevc raw HEVC video
E hls Apple HTTP Live Streaming
D hls,applehttp Apple HTTP Live Streaming
D hnm Cryo HNM v4
DE ico Microsoft Windows ICO
D idcin id Cinematic
D idf iCE Draw File
D iff IFF (Interchange File Format)
DE ilbc iLBC storage
DE image2 image2 sequence
DE image2pipe piped image2 sequence
D ingenient raw Ingenient MJPEG
D ipmovie Interplay MVE
E ipod iPod H.264 MP4 (MPEG-4 Part 14)
DE ircam Berkeley/IRCAM/CARL Sound Format
E ismv ISMV/ISMA (Smooth Streaming)
D iss Funcom ISS
D iv8 IndigoVision 8000 video
DE ivf On2 IVF
D j2k_pipe piped j2k sequence
DE jacosub JACOsub subtitle format
D jpeg_pipe piped jpeg sequence
D jpegls_pipe piped jpegls sequence
D jv Bitmap Brothers JV
DE latm LOAS/LATM
D lavfi Libavfilter virtual input device
D live_flv live RTMP FLV (Flash Video)
D lmlm4 raw lmlm4
D loas LOAS AudioSyncStream
DE lrc LRC lyrics
D lvf LVF
D lxf VR native stream (LXF)
DE m4v raw MPEG-4 video
E matroska Matroska
D matroska,webm Matroska / WebM
E md5 MD5 testing
D mgsts Metal Gear Solid: The Twin Snakes
DE microdvd MicroDVD subtitle format
DE mjpeg raw MJPEG video
E mkvtimestamp_v2 extract pts as timecode v2 format, as defined by mkvtoolnix
DE mlp raw MLP
D mlv Magic Lantern Video (MLV)
D mm American Laser Games MM
DE mmf Yamaha SMAF
E mov QuickTime / MOV
D mov,mp4,m4a,3gp,3g2,mj2 QuickTime / MOV
E mp2 MP2 (MPEG audio layer 2)
DE mp3 MP3 (MPEG audio layer 3)
E mp4 MP4 (MPEG-4 Part 14)
D mpc Musepack
D mpc8 Musepack SV8
DE mpeg MPEG-1 Systems / MPEG program stream
E mpeg1video raw MPEG-1 video
E mpeg2video raw MPEG-2 video
DE mpegts MPEG-TS (MPEG-2 Transport Stream)
D mpegtsraw raw MPEG-TS (MPEG-2 Transport Stream)
D mpegvideo raw MPEG video
E mpjpeg MIME multipart JPEG
D mpl2 MPL2 subtitles
D mpsub MPlayer subtitles
D msnwctcp MSN TCP Webcam stream
D mtv MTV
DE mulaw PCM mu-law
D mv Silicon Graphics Movie
D mvi Motion Pixels MVI
DE mxf MXF (Material eXchange Format)
E mxf_d10 MXF (Material eXchange Format) D-10 Mapping
E mxf_opatom MXF (Material eXchange Format) Operational Pattern Atom
D mxg MxPEG clip
D nc NC camera feed
D nistsphere NIST SPeech HEader REsources
D nsv Nullsoft Streaming Video
E null raw null video
DE nut NUT
D nuv NuppelVideo
E oga Ogg Audio
DE ogg Ogg
DE oma Sony OpenMG audio
E opus Ogg Opus
DE oss OSS (Open Sound System) playback
D paf Amazing Studio Packed Animation File
D pictor_pipe piped pictor sequence
D pjs PJS (Phoenix Japanimation Society) subtitles
D pmp Playstation Portable PMP
D png_pipe piped png sequence
E psp PSP MP4 (MPEG-4 Part 14)
D psxstr Sony Playstation STR
DE pulse Pulse audio output
D pva TechnoTrend PVA
D pvf PVF (Portable Voice Format)
D qcp QCP
D r3d REDCODE R3D
DE rawvideo raw video
D realtext RealText subtitle format
D redspark RedSpark
D rl2 RL2
DE rm RealMedia
DE roq raw id RoQ
D rpl RPL / ARMovie
D rsd GameCube RSD
DE rso Lego Mindstorms RSO
DE rtp RTP output
E rtp_mpegts RTP/mpegts output format
DE rtsp RTSP output
DE s16be PCM signed 16-bit big-endian
DE s16le PCM signed 16-bit little-endian
DE s24be PCM signed 24-bit big-endian
DE s24le PCM signed 24-bit little-endian
DE s32be PCM signed 32-bit big-endian
DE s32le PCM signed 32-bit little-endian
DE s8 PCM signed 8-bit
D sami SAMI subtitle format
DE sap SAP output
D sbg SBaGen binaural beats script
E sdl SDL output device
D sdp SDP
D sdr2 SDR2
E segment segment
D sgi_pipe piped sgi sequence
D shn raw Shorten
D siff Beam Software SIFF
D sln Asterisk raw pcm
DE smjpeg Loki SDL MJPEG
D smk Smacker
E smoothstreaming Smooth Streaming Muxer
D smush LucasArts Smush
D sol Sierra SOL
DE sox SoX native
DE spdif IEC 61937 (used on S/PDIF - IEC958)
E spx Ogg Speex
DE srt SubRip subtitle
D stl Spruce subtitle format
E stream_segment,ssegment streaming segment muxer
D subviewer SubViewer subtitle format
D subviewer1 SubViewer v1 subtitle format
D sunrast_pipe piped sunrast sequence
D sup raw HDMV Presentation Graphic Stream subtitles
E svcd MPEG-2 PS (SVCD)
DE swf SWF (ShockWave Flash)
D tak raw TAK
D tedcaptions TED Talks captions
E tee Multiple muxer tee
D thp THP
D tiertexseq Tiertex Limited SEQ
D tiff_pipe piped tiff sequence
D tmv 8088flex TMV
DE truehd raw TrueHD
D tta TTA (True Audio)
D tty Tele-typewriter
D txd Renderware TeXture Dictionary
DE u16be PCM unsigned 16-bit big-endian
DE u16le PCM unsigned 16-bit little-endian
DE u24be PCM unsigned 24-bit big-endian
DE u24le PCM unsigned 24-bit little-endian
DE u32be PCM unsigned 32-bit big-endian
DE u32le PCM unsigned 32-bit little-endian
DE u8 PCM unsigned 8-bit
E uncodedframecrc uncoded framecrc testing
E v4l2 Video4Linux2 output device
DE vc1 raw VC-1 video
DE vc1test VC-1 test bitstream
E vcd MPEG-1 Systems / MPEG program stream (VCD)
D video4linux2,v4l2 Video4Linux2 device grab
D vivo Vivo
D vmd Sierra VMD
E vob MPEG-2 PS (VOB)
D vobsub VobSub subtitle format
DE voc Creative Voice
D vplayer VPlayer subtitles
D vqf Nippon Telegraph and Telephone Corporation (NTT) TwinVQ
DE w64 Sony Wave64
DE wav WAV / WAVE (Waveform Audio)
D wc3movie Wing Commander III movie
E webm WebM
DE webm_dash_manifest WebM DASH Manifest
E webp WebP
D webp_pipe piped webp sequence
DE webvtt WebVTT subtitle
D wsaud Westwood Studios audio
D wsvqa Westwood Studios VQA
DE wtv Windows Television (WTV)
DE wv raw WavPack
D x11grab X11 screen capture, using XCB
D xa Maxis XA
D xbin eXtended BINary text (XBIN)
D xmv Microsoft XMV
E xv XV (XVideo) output device
D xwma Microsoft xWMA
D yop Psygnosis YOP
DE yuv4mpegpipe YUV4MPEG pipe
ffmpeg in OpenSuse built without h264 support.
Should we handle it or just tell users to use -f best
or --merge-output-format
?
@Wikinaut so, not a youtube-dl issue. You can workaround by specifying merge output format to mkv using --merge-output-format mkv
or build ffmpeg yourself.
@jaimeMF we could probably implement some logic here and fallback to -f best
.
It will just complicate the code, I prefer telling the users to use some youtube-dl option or install ffmpeg with h264 support.
Why complicate? All this logic would be placed in one single place that's easily maintainable. The only problem with this is how much reliable these heuristics are. Most likely we will receive bugreports like that over and over again (similarly to outdated avconv) and telling users to install ffmpeg with proper formats support won't change anything (obviously very few will build ffmpeg themselves and most will treat youtube-dl broken).
Since it would only be used to decide if it should default to bestvideo+bestaudio/best
, it makes sense to only do it if we know that ffmpeg will be able to do so. So, like you work for checking the version, it's good for the user experience. If you want to code it, go ahead.
The only problem with this is how much reliable these heuristics are
I think we should consider using a different format query based on the ffmpeg configuration (to not pollute the YoutubeDL class, it should probably go inside a method of the merger). For example if it doesn't have h264 support but has webm support, we could use -f bestvideo[ext=webm]+bestaudio[ext=webm]/best
. With that we would still get the best format available and the merge shoudn't fail.
Please let me drop in again.
I already said that I suppose that it could be ffmeg problem (I will come back to that later). A silent fallback to -f best is IMHO not a solution. As you already mentioned in https://github.com/rg3/youtube-dl/issues/5661#issuecomment-100613951 , such a default can be set by the user in the configuration file.
My proposal is to let youtube-dl better detect and notifying the user that ffmpeg is having a problem, i.e. that needed codecs are missings in installed ffmpeg, which cannot be only ffmpeg-version based.
See my top posting, the output of ffmpeg in my case is "Unable to find a suitable output format for xxxxxx.mp4".
@jacobian in reply to your question https://github.com/rg3/youtube-dl/issues/5693#issuecomment-102012873
"Does it work if you tell it you output an mkv file: "
Yes, the merge command using the mkv works for me.
And now?
http://dpaste.com/0071B22#wrap is the ouput of ffmpeg -version and ffmpeg -formats of the version from the PACKMAN repository, it contains the lib264 and lib265 encoders but the format list looks to be the limit one as of OpenSuse Tumbleweed.
Version from the PACKMAN repository:
ffmpeg -version
ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8 (SUSE Linux)
configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --disable-static --enable-debug --disable-stripping --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-pic --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-gpl --enable-x11grab --enable-version3 --enable-pthreads --datadir=/usr/share/ffmpeg --enable-avfilter --enable-libpulse --enable-libwebp --enable-libvpx --enable-libopus --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libxvid --enable-libx264 --enable-libx265 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-librtmp --enable-libfreetype --enable-avresample --enable-libtwolame --enable-libvo-aacenc --enable-gnutls --enable-libass --enable-frei0r --enable-libcelt --enable-libcdio --enable-ladspa
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
ffmpeg -formats
File formats:
D. = Demuxing supported
.E = Muxing supported
--
DE alsa ALSA audio output
D asf ASF (Advanced / Active Streaming Format)
D dv DV (Digital Video)
D dv1394 DV1394 A/V grab
DE fbdev Linux framebuffer
E ffm FFM (FFserver live feed)
DE flac raw FLAC
DE gif GIF Animation
DE image2 image2 sequence
DE image2pipe piped image2 sequence
D jack JACK Audio Connection Kit
D lavfi Libavfilter virtual input device
D libcdio
D libdc1394 dc1394 v.2 A/V grab
E matroska Matroska
D matroska,webm Matroska / WebM
D mov,mp4,m4a,3gp,3g2,mj2 QuickTime / MOV
D mpegts MPEG-TS (MPEG-2 Transport Stream)
E null raw null video
DE oss OSS (Open Sound System) playback
DE pulse Pulse audio output
D rm RealMedia
D rtsp RTSP input
E sdl SDL output device
E v4l2 Video4Linux2 output device
D video4linux2,v4l2 Video4Linux2 device grab
E webm WebM
D x11grab X11 screen capture, using XCB
I'm on openSuse Tumbleweed, same problem here... It worked on openSuse 13.2.
I'm on openSuse Leap, same problem here :( it worked on Fedora 22, Linux Mint 17
Using a fresh OpenSuse Tumbleweed, and fresh youtube-dl, and when trying to
I got this error
The real output of ffmpeg is:
I don't know whether this is an ffmpeg or youtube-dl issue, perhaps anyone can help. Youtube-dl should in any case show a correct error message, perhaps with a hint, what how to overcome this problem.