[FFmpeg-trac] #5966(undetermined:new): ffmpeg/ffplay specify (H)DV camera's using iec61883 -dvguid option broken or wrong syntax?
FFmpeg
trac at avcodec.org
Sun Nov 20 20:31:51 EET 2016
#5966: ffmpeg/ffplay specify (H)DV camera's using iec61883 -dvguid option broken
or wrong syntax?
-------------------------------------+-------------------------------------
Reporter: | Type: defect
walterav1984 | Priority: normal
Status: new | Version: git-
Component: | master
undetermined | Blocked By:
Keywords: iec61883 | Reproduced by developer: 0
dvguid |
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
Not sure if its a bug or me miss understanding the syntax of iec61883
-dvguid option.
https://ffmpeg.org/ffmpeg-devices.html#iec61883
To my understanding the single libiec61883 argument "auto" just works as
expected with no selective power at all. But specifying pci adapters by
referring to them as port numbers is a little bit unclear and should not
be necessary if the -dvguid option works( I think its broken). Leaving out
'-i' also seems to work for auto and port number syntax...
Use Case:
Using multiple firewire/1394 (H)DV camera's with iec61883 in ffmpeg/ffplay
only works for a single (H)DV camera which is active/powered-on "first"
(in a order of multiple connected camera's) to a systems firewire
interface.
Although having multiple active camera's connected to the same single
firewire adapter interface, I was not able to select/specify/distinguish
with "-dvguid" other than the first powered-on camera.
How to reproduce:
Lookup (H)DV camera unique device GUID codes, the first is probably the
pci firewire adapter itself!
{{{
dmesg | grep GUID
cat /sys/bus/firewire/devices/fw*/guid
}}}
Using multiple (H)DV camera's on the same firewire adapter interface other
than the first powered-on will not work.
{{{
ffplay -f iec61883 -i 0 -dvtype dv -dvguid 0x0camera1guidcode #probably
works if 1st
ffplay -f iec61883 -i 0 -dvtype dv -dvguid 0x0camera2guidcode #doesn't
work just hangs
}}}
Using multiple (H)DV devices each connected on their own firewire pci
adapter interface works, but still only for the "first"
poweredon/connected device on that unique firewire adapter. Adding the
-guid option here will not be very effective and functions more like a
whitelist since it still only works on the first powered-on camera's. The
first iec61883 argument auto/port is used to specify the firewire pci
adapter see 0 and 1 in the following examples.
{{{
ffplay -f iec61883 -i 0 -dvtype dv #sony camera on 1st pci firewire
adapter
ffplay -f iec61883 -i 1 -dvtype hdv #canon camera on seperate 2nd pci
firewire adapter
}}}
Expected:
Just by adding the option -dvguid to -dvtype I would expect that a unique
camera can be specified with or without the need of the firewire adapter
port number.
{{{
ffplay -f iec61883 -i -dvtype dv -dvguid 0x0camera2guid #doesn't work
ffplay -f iec61883 -i 0 -dvtype -dvguid 0x0camera2guid #doesn't work
}}}
Using a on purpose wrong -dvguid code starting with 0x 0 or 1 will lead to
the same first dv device, a other on purpose wrong guid code like 2 or 2x
leads to a expected error.
{{{
ffplay -f iec61883 -i -dvtype dv -dvguid 2 #see error
ffplay -f iec61883 -i 0 -dvtype -dvguid 2xetc #see error
}}}
"No AV/C devices found.
1: Input/output error"
The program "dvgrab" works as expected, it will let you capture from
multiple uniquely with -guid option specified (H)DV camera's at the same
time from the same single pci firewire adapter interface. I would expect
ffmpeg/ffplay iec61883 dvguid option to behave the same...
{{{
dvgrab -noavc -f raw -guid 0x0sonycameraguid sonyrecording.dv
dvgrab -noavc -f hdv -guid 0x0canoncameraguid canonrecording.hdv
dvgrab -noavc -f dv -guid 0x0jvccameraguid jvcrecording.dv
}}}
FW adapters:
Texas Instruments TSB82AA2 IEEE-1394b (3 FW800 ports)
Agere LSI Corporation FW322/323 (2 FW400 6pin ports)
Software:
ubuntu linux 16.04.1 amd64 kernel 4.4.0-45-generic 66
libiec61883 1.2.0
{{{
ffmpeg version 2.8.8-0ubuntu0.16.04.1 #repo
ffmpeg version N-82572-gac206bb #github master build
built on ubuntu 16.04.1 amd64
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5966>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list